我对套接字编程很新,我的任务是将windows代码更改为linux。我有一个问题,我希望你能帮助我。我得到了这段代码,其中IP4地址的四个参数从一个函数转移到我的套接字代码(在带有头文件winsock.h的windows中)。
struct sockaddr_in server;
server.sin_addr.S_un.S_un_b.s_b1 = (unsigned char)a1;
server.sin_addr.S_un.S_un_b.s_b2 = (unsigned char)a2;
server.sin_addr.S_un.S_un_b.s_b3 = (unsigned char)a3;
server.sin_addr.S_un.S_un_b.s_b4 = (unsigned char)a4;
我的问题是,如果有类似的方法将这些参数传递给linux套接字代码。
答案 0 :(得分:2)
您可以手动转换它:
inaddr_t make_inaddr(
unsigned char a1,
unsigned char a2,
unsigned char a3,
unsigned char a4)
{
inaddr_t result;
result = htonl(((uint32_t)a1 << 24)
| ((uint32_t)a2 << 16)
| ((uint32_t)a3 << 8)
| a4);
return result;
}