我已经看到了两个示例,它们说明了客户端套接字如何从服务器接收消息。
示例 1:
服务器代码 http://man7.org/tlpi/code/online/book/sockets/ud_ucase_sv.c.html
客户端代码 http://man7.org/tlpi/code/online/book/sockets/ud_ucase_cl.c.html
客户端程序创建一个套接字并将该套接字绑定到一个地址,以便服务器可以发送它的回复。
if (bind(sfd, (struct sockaddr *) &claddr, sizeof(struct sockaddr_un)) == -1)
errExit("bind"); // snippet from ud_ucase_cl.c
示例 2:
服务器代码 http://man7.org/tlpi/code/online/book/sockets/i6d_ucase_sv.c.html
客户端代码 http://man7.org/tlpi/code/online/book/sockets/i6d_ucase_cl.c.html
在示例 2 中,客户端代码没有将其套接字与地址绑定。
问题:
客户端代码是否需要将套接字与地址绑定才能从服务器接收消息?
为什么在第一个示例中,我们必须将客户端套接字与地址绑定,为什么在第二个示例中不必?