Pol*_*uin 1 c sockets abstraction file stream
回到关于在套接字编程中使用C文件流的问题。我正在阅读它,看到评论不一-有人说这是不可靠的(即泄漏抽象?)。
有没有人对在套接字编程中使用C文件流有一种看法?
是。别。
TCP和UDP协议的语义太多,无法轻松地映射到您常用的文件流API。并不是说这是不可能的,甚至不是困难的,但是可能会有很多陷阱和极端情况会给您带来不可预测的行为。我也想不出您想将套接字视为普通文件的任何应用程序。
归根结底,一旦您处理了绑定,监听和接受操作,就不能使用C File流,并将生成的文件描述符包装为File流类型,那么您要做的就是使用fread()和fwrite(),也许是fgetc(),因此您最好将其保留为普通文件描述符,然后再使用recv()和send()来节省打包的麻烦。您可能省去了处理缓冲区的麻烦,但是控制缓冲区使您可以根据应用程序的要求调整缓冲区,并节省一些网络开销和速度。