首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

[ 各位大神好]有关socket read和write 的有关问题

2013-11-09 
[求助各位大神好]有关socket read和write 的问题!//谢谢每一位回答的朋友。//该问题为linux Ubuntu下最近写

[求助 各位大神好]有关socket read和write 的问题!
//谢谢每一位回答的朋友。
//该问题为linux Ubuntu下

最近写了喜欢起网络编成了,但是经过实践我有了一些困惑。那就是本以为read函数读取时会读出请求的字段后返回:
例如:
    


    int len = 100;
    if(-1 == (nbytes = read(fd,buffer,100)))
    {
        cerr<<strerror(errno)<<endl;
        exit(1);
    }
    

可测试结果却不是,后经查资料得知,read当缓冲区少于len字节时也会全部读取而返回。
  
那么我再想客户端先发送30 条20字节消息,然后服务端sleep(100),之后再读取循环1024字节进入buffer,然后输出,结果呢,居然这600字节需要分30次读取,这是为什么? linux?? socket read
[解决办法]
客户端的write只是把数据写到输出队列就返回,并不能保证write返回时数据已经被发送出去了。

热点排行