当前位置: 技术问答>linux和unix
linux平台下读写socket的最佳方案,欢迎各位讨论。
来源: 互联网 发布时间:2015-05-05
本文导语: 我在这里想和各位IT中人一同探讨一下到底那种方式是效率最高、最安全、最实用的socket读写方式呢? 1. 我们使用write 还是 send 来写socket? ssize_t write(int fd, const void *buf, size_t count); int send (int ...
我在这里想和各位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的配对使用?
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的配对使用?
|
我以前写程序是用poll+read,write,将就着用用,觉得read,write不是最好的。
|
以写为例:
int send (int s, const void *msg, size_t len, int flags);
通过msg和flag的不同取值,send可以模仿write,也可以OOB写,等等,具体可以man send看看
对unix一类而言,都是fd的操作,write可以胜任,从简单的角度来看,write够用了.
int send (int s, const void *msg, size_t len, int flags);
通过msg和flag的不同取值,send可以模仿write,也可以OOB写,等等,具体可以man send看看
对unix一类而言,都是fd的操作,write可以胜任,从简单的角度来看,write够用了.
|
做个记号
|
man 2 send不久知道了
|
当然是不能一次性读取的,可以循环读。