求救,一个关于read读socket的问题。
时间:2010-08-15
来源:互联网
最近写个socket通信,用来文件传输。服务器端多线程分别read各自不同文件,然后向建立好连接的socket里写,每个线程写的文件都有各自标记。
客户端一个线程专门用来从socket中读取信息,然后判断标记,分给对应的线程去写。
问题来了:由于不同文件大小不一样,当最小的文件传输结束,客户端会read到一个结束标记,然后就默认文件全部传输结束。其实只有最小的传完了。
弄了半天了,也没法让read忽略那个结束标记,我该怎么办呢?高手帮忙,感谢。
客户端一个线程专门用来从socket中读取信息,然后判断标记,分给对应的线程去写。
问题来了:由于不同文件大小不一样,当最小的文件传输结束,客户端会read到一个结束标记,然后就默认文件全部传输结束。其实只有最小的传完了。
弄了半天了,也没法让read忽略那个结束标记,我该怎么办呢?高手帮忙,感谢。

作者: robin254817 发布时间: 2010-08-15
顶起来,在线等解答。

作者: robin254817 发布时间: 2010-08-15
协议定义有问题,按你的处理结束标记应该区分是哪个文件的
作者: hellioncu 发布时间: 2010-08-15
回复 hellioncu
区分了呀,知道是那个文件,关键是read读到那个最小的文件的结束以后不管我循环continue去read几次,都read都返回0。可是这时我服务器还在向socket里写呢。
read读到一个结尾就,继续读socket的话怎么返回值还是0呢?就是死活认为socket里没内容了。
难道我得建多个socket每个任务对应一个?没办法解决read问题么?
区分了呀,知道是那个文件,关键是read读到那个最小的文件的结束以后不管我循环continue去read几次,都read都返回0。可是这时我服务器还在向socket里写呢。
read读到一个结尾就,继续读socket的话怎么返回值还是0呢?就是死活认为socket里没内容了。
难道我得建多个socket每个任务对应一个?没办法解决read问题么?
作者: robin254817 发布时间: 2010-08-15
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28