如果我只想从客户端接收数据,而不发送数据,我的服务器代码中是否需要有一个 connect() ?
或者具备以下条件就足够了吗?
socket();
bind();
listen();
accept();
描述了服务器与客户端交互的基本原理。正如您所看到的,在进行任何交互之前,客户端必须
connect
连接到服务器。
一旦使用 socket() 调用构建了套接字描述符,您就可以使用名称良好的 connect() 系统调用将该套接字连接到远程服务器。
您提到的顺序也在
server
中。如果您只想从服务器接收数据,只需在客户端中执行 read
并在服务器中执行 write
即可。但connect
是必要的。
您需要为客户端使用
socket
和 connect
。
TCP 协议确实以 ACK 的形式向服务器发送数据并从服务器接收返回的数据(即使您没有传输数据)
请阅读 TCP/IP 协议。
如果我只想从客户端接收数据,而不发送数据,我的服务器代码中是否需要有一个 connect() ?
服务器代码中永远不需要有connect()。
客户端调用connect()。服务器调用accept()。根据定义。