linux平台下读写socket的最佳方案,欢迎各位讨论。

yuanlei1978113 2003-10-15 04:42:16
我在这里想和各位IT中人一同探讨一下到底那种方式是效率最高、最安全、最实用的socket读写方式呢?
1. 我们使用write 还是 send 来写socket?
ssize_t write(int fd, const void *buf, size_t count);
int send (int s, const void *msg, size_t len, int flags);

2. 我们使用read 还是 recv 来读socket?
ssize_t read(int fd, void *buf, size_t count);
int recv(int s, void *buf, size_t len, int flags);

3. 我们使用一个循环一次读取一定大小的读取数据直到把数据读完还是一次性读取?

4. 是不是我们在编程时一定要保持write、read 和 send、recv的配对使用?

...全文
39 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
daidai_____DD 2003-10-26
  • 打赏
  • 举报
回复
当然是不能一次性读取的,可以循环读。
yuanlei1978113 2003-10-16
  • 打赏
  • 举报
回复
为什么有时我一次写了12119字节数据到socket,而接收方用read不能一次读取他只读了其中一部分就放下执行了。
blh 2003-10-16
  • 打赏
  • 举报
回复
man 2 send不久知道了
zhb1284 2003-10-16
  • 打赏
  • 举报
回复
做个记号
yuanlei1978113 2003-10-16
  • 打赏
  • 举报
回复
请问send recv系统调用的flags都有哪些,他们又都是什么含义?
fxiangh 2003-10-15
  • 打赏
  • 举报
回复
以写为例:
int send (int s, const void *msg, size_t len, int flags);
通过msg和flag的不同取值,send可以模仿write,也可以OOB写,等等,具体可以man send看看
对unix一类而言,都是fd的操作,write可以胜任,从简单的角度来看,write够用了.
yuanlei1978113 2003-10-15
  • 打赏
  • 举报
回复
那就是说send和recv是最佳搭档了。
daidai_____DD 2003-10-15
  • 打赏
  • 举报
回复
我以前写程序是用poll+read,write,将就着用用,觉得read,write不是最好的。

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧