我的工作使用典型的套接字API在Linux平台上用C编写网络应用++,和我在看写的2种替代方法一个字节数组到TCP流:通过调用write()或调用send()。我知道,因为这是Linux,所以套接字句柄只是一个文件描述符,因此在套接字上执行read()和write()调用是有效的,但是套接字API也提供了send()和recv )功能执行相同的任务。性能影响写入套接字时()
我因此想知道是否有任何特别的理由去选择一个类的功能比其他 - 被发送/ recv的功能网络写入/读取优化,做他们表现得更好,等等?或者它真的是任意使用哪些功能?在所有情况下,read()和write()的行为是否正确?
感谢您的见解!
FreeBSD或其他平台也是如此吗? - 该行不会出现在我的send(2)手册页中。 – 2014-03-18 23:34:03
@GoodPerson它适用于所有平台。如果不是这样,`inetd`之类的将不起作用。 (`inetd`把你的套接字放进你的守护进程的标准输入和标准输出中,你的进程可以用正常的方式直接与标准输入和标准输出进行交互,而不必知道它们是套接字。当然,你也可以使用套接字。 ) – 2014-11-29 06:43:39