【发布时间】:2013-06-25 11:55:47
【问题描述】:
在编写服务器套接字编程时是否需要将 socketfd 绑定到 IP 地址。 我的意思是可以在不调用绑定系统调用的情况下编写套接字编程吗? 就像套接字 -> 监听 -> 接受 -> 读/写/ -> 关闭。
【问题讨论】:
-
在我的手机上给我打电话,我会为你回答这个问题。
在编写服务器套接字编程时是否需要将 socketfd 绑定到 IP 地址。 我的意思是可以在不调用绑定系统调用的情况下编写套接字编程吗? 就像套接字 -> 监听 -> 接受 -> 读/写/ -> 关闭。
【问题讨论】:
socket 应该绑定到端口或 unix 套接字文件。
你的意思是you don't want to define port number for listen?然后绑定端口号 0。它与随机端口一起使用。
memset((char *) &reader_addr, 0, sizeof(reader_addr));
reader_addr.sin_family = PF_INET;
reader_addr.sin_addr.s_addr = htonl(INADDR_ANY);
reader_addr.sin_port = 0;
if (bind(server_fd, (struct sockaddr *)&reader_addr, sizeof(reader_addr)) < 0) {
perror("reader: bind");
exit(1);
}
【讨论】:
你在服务器端使用bind。
想象一下,它是您办公室的配电盘。 bind 给它一个电话号码,以便其他人知道要拨打哪个号码。接线员listen 接听并接通电话(即处理它)。
【讨论】: