- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我以前有过这个工作,但我不明白如何工作,所以我尝试重写一些代码。
一切似乎都很顺利,除了当我尝试使用 getaddrinfo() 时,我得到的结果是 -7,这意味着错误“ai_socktype 不支持”。
我敢打赌,这只是我仍在掌握指针。如果有人可以解释我如何/哪里出错了,我将不胜感激。
代码:
#define PORT "4400"
typedef struct {
int port;
fd_set *connections;
int connections_count;
int listener;
struct addrinfo *address;
struct addrinfo *socket_hints;
} Server;
void initialize_server(Server *passed_server, char *port) {
struct addrinfo *temp;
int status; // Get addrinfo status
// Set up the server hints
passed_server->socket_hints = malloc(sizeof passed_server->socket_hints);
passed_server->socket_hints->ai_family = AF_UNSPEC;
passed_server->socket_hints->ai_socktype = SOCK_STREAM;
passed_server->socket_hints->ai_flags = AI_PASSIVE;
if((status = getaddrinfo(NULL, port, passed_server->socket_hints, &temp)) != 0) {
fprintf(stderr, "Error with getaddrinfo: %s\n", gai_strerror(status));
}
printf("Result: %d\n", status);
}
int main(int argc, char** argv) {
// Set up socket stuff
Server *server = malloc(sizeof *server); // Set up the server
initialize_server(server, PORT);
return (EXIT_SUCCESS);
}
最佳答案
回顾代码后,我意识到我需要更改:
passed_server->socket_hints = malloc(sizeof passed_server->socket_hints);
到
passed_server->socket_hints = malloc(sizeof *passed_server->socket_hints);
我相信这是因为在第一个中我得到了内存位置的大小(int 类型)。在第二个中,我返回 socket_hints 指向的结构的大小。
关于c - 不支持获取 ai_socktype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3596732/
我以前有过这个工作,但我不明白如何工作,所以我尝试重写一些代码。 一切似乎都很顺利,除了当我尝试使用 getaddrinfo() 时,我得到的结果是 -7,这意味着错误“ai_socktype 不支持
struct addrinfo *myAddrinfo, *curMyAddrinfo, hint; memset(&hint, 0, sizeof(struct addrinfo)); hint.a
我正在使用 Vagrant 运行 Centos 虚拟机。机器似乎运行正常,但是当我尝试同步 Perforce 时,我可以看到以下错误: [vagrant@vagrant-c5-x86_64 ~]$ /
我无法通过 paramiko 连接到其他服务器: import paramiko import sys import os hostname = 'server1' port = 22 usernam
我正在尝试实现一个 IPv6 UDP 客户端-服务器应用程序,它将让我获得逐跳扩展 header 的详细信息。因此,为此我想我必须使用 SOCK_RAW 来访问 IPv6 header 信息。 现在在
所以,在我得到这个错误之后,我一直在这里寻找答案,几乎每个人都有一个很难解决这个错误的方法,但是没有人解释为什么会发生这个错误,所以我不认为这个问题是完全重复。 我用 C 语言编写了一个 TCP 套接
我正在尝试用 C 编写套接字程序。当我这样做时,我的整个代码都可以正常工作 #define PORT "3333" 但不是 #define PORT getParameter("setting.ini
我观察到,这是因为端口。端口是 C++ 字符串。当我硬编码端口号时说“4091”我没有看到这个问题。有什么建议吗? int sockfd; struct addrinfo hints, *servin
假设以下代码模拟了 resolveip 实用程序的基本功能: #define _POSIX_SOURCE /* getaddrinfo() */ #include /* getaddr
getaddrinfo接受 struct addrinfo *hints 作为第三个参数,可用于指定选择要由该函数返回的套接字地址的标准。 文档说我们可以设置 ai_socktype 以及 ai_pr
我从 git 收到这条错误消息。这是什么意思?如何修复? 最佳答案 我认为这与 Git 无关,而是与运行 Git 的服务器有关。 参见 this article what could this mea
我是一名优秀的程序员,十分优秀!