先生,
我想知道如何使用一个套接字对象来发送和接收数据?
标准 C 没有套接字接口。
找到适用于您的操作系统(Posix、Windows、其他各种)的套接字接口。阅读文档。一旦你打开了套接字,就会有发送和接收数据的函数。
TCP 套接字表示双向通信通道,因此您可以在同一个套接字上同时使用这两个通道,而无需做任何特别的事情。如何实现这一点取决于中间网络,例如物理层是全双工还是半双工。
请注意当其中一个阻塞时会发生什么——如果套接字的两端都在尝试写入,并且缓冲区在两个方向上都已满,那么您最终可能会陷入死锁,因为任何一方都无法再写入,直到另一方side 读取一些内容以在缓冲区中腾出空间。如果双方都被阻止读取并且没有人在写入,则会发生同样的事情。
当你想发送数据时,你调用 send(); 当你想接收数据时,你调用recv()。它真的没有比这更复杂。
如果您要询问通过网络传输数据的机制,我建议您阅读 Stevens 的网络书籍(并跳过 Beej 的指南,因为这是神圣的)。