【发布时间】:2015-12-21 00:02:00
【问题描述】:
查看它列出的定义 sys/socket.h 规范的通用套接字结构:
sa_family_t sa_family address family
char sa_data[] socket address (variable-length data)
查看我的 linux 机器上位于 /usr/includes/sys/socket.h 的实际头文件,它的定义如下。
struct osockaddr
{
unsigned short int sa_family;
unsigned char sa_data[14];
};
现在我知道,如果我包含 netinet/in.h,它将定义一个 sockaddr_in 结构,并且由于我使用的是 AF_INET,它会使用它...
struct sockaddr_in {
short int sin_family;
unsigned short int sin_port;
struct in_addr sin_addr;
unsigned char sin_zero[8];
};
但是,当我可以简单地使用通用osockaddr 结构时,我觉得没有必要#include 另一个库(netinet/in.h)。
现在我知道我的osockaddr 成员sa_family 将与AF_INET 相关,但我不清楚sa_data 成员内部的实际内容...我假设port,addr,zero 与@987654334 相关@结构,但我不清楚。
问题:谁能给我一个使用通用osockaddr结构的例子吗?
到目前为止我所拥有的......
#include<sys/socket.h>
int main(void){
struct osockaddr address;
address.sa_family = AF_INET;
address.sa_data = ? //What goes here (port, addr, zero)?
return 0;
}
【问题讨论】:
标签: c sockets websocket ip webserver