一个用于在c中发送和接收的Socket对象

时间:2012-06-06 09:02:45

标签: c

爵士

我想知道一个套接字对象如何用于发送和接收数据?

2 个答案:

答案 0 :(得分:1)

标准C没有套接字接口。

找到适用于您的操作系统的套接字接口(Posix,Windows,其他各种)。阅读文档。一旦打开套接字,就会有发送和接收数据的功能。

TCP套接字表示双向通信通道,因此您可以在同一个套接字上使用它们,而无需执行任何特殊操作。这取决于干预网络如何实现这一点,例如physical layer是全双工还是半双工。

当其中一个阻塞时会发生什么事情要小心 - 如果套接字的两端都试图写入,并且缓冲区在两个方向都是满的,那么你最终会陷入僵局,因为任何一方都不能再写了直到另一方读取内容以在缓冲区中腾出空间。如果双方都被封锁阅读并且没有人正在写作,同样的事情就会发生。

答案 1 :(得分:0)

如果要发送数据,请调用send();当你想要接收数据时,你可以调用recv()。它确实并不复杂。

如果您要求通过网络传输数据的机制,我建议您选择史蒂文斯的网络书籍(并跳过Beej的指南,尽管这是神圣的)。