socket 网络通信 循环接收 发送 数据流

AnshuWang 2010-11-14 01:35:48
用socket 发送数据报文给服务端。 返回的信息 ,read显示不出来。但也算是被接收了 为什么。是返回错误信息吗?应该避免这种问题呢;
...全文
328 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
asd1985223 2010-11-16
  • 打赏
  • 举报
回复
最好的做法2个线程一个收一个发 而且要锁一下注意并发

然后将数据统一格式 转为16进制发来 接收到先吧16进制输出看有什么

然后再转换16进制
报文的收发应该是由统一的格式要求的吧
AnshuWang 2010-11-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 houjin_cn 的回复:]
引用 4 楼 websbandit 的回复:
能避免这样问题吗 我用while 循环读入 写出,好像就不能接到服务器的信息了。每次读写都有关掉数据流

你是socket, 应该是建立长连接, 读写后就不要关掉数据流了, 关闭了当然就不能继续读写数据了
[/Quote]
我用shutdownread 关闭读 。好像就不能再读服务器的报文。怎么能再启用读的功能
AnshuWang 2010-11-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 houjin_cn 的回复:]
引用 6 楼 websbandit 的回复:
不关掉读写 好像服务器就阻塞了在读写上

不该读的时候就不要读,
每次开始读以后, 你能知道这次服务器向你传了多少数据吗?如果知道, 那么你就只读这么多就不要读了, 如果再读,因为服务器并没有给你传数据, 所以你的读取操作就会阻塞在那里
[/Quote]
q上聊吧
AnshuWang 2010-11-14
  • 打赏
  • 举报
回复
是不是每次读取服务器报文 关掉读,好像再也接收不了报文了啊
能qq聊吗1134502072
houjin_cn 2010-11-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 websbandit 的回复:]
不关掉读写 好像服务器就阻塞了在读写上
[/Quote]
不该读的时候就不要读,
每次开始读以后, 你能知道这次服务器向你传了多少数据吗?如果知道, 那么你就只读这么多就不要读了, 如果再读,因为服务器并没有给你传数据, 所以你的读取操作就会阻塞在那里
AnshuWang 2010-11-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 houjin_cn 的回复:]
引用 4 楼 websbandit 的回复:
能避免这样问题吗 我用while 循环读入 写出,好像就不能接到服务器的信息了。每次读写都有关掉数据流

你是socket, 应该是建立长连接, 读写后就不要关掉数据流了, 关闭了当然就不能继续读写数据了
[/Quote]
不关掉读写 好像服务器就阻塞了在读写上
houjin_cn 2010-11-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 websbandit 的回复:]
能避免这样问题吗 我用while 循环读入 写出,好像就不能接到服务器的信息了。每次读写都有关掉数据流
[/Quote]
你是socket, 应该是建立长连接, 读写后就不要关掉数据流了, 关闭了当然就不能继续读写数据了
AnshuWang 2010-11-14
  • 打赏
  • 举报
回复
能避免这样问题吗 我用while 循环读入 写出,好像就不能接到服务器的信息了。每次读写都有关掉数据流
houjin_cn 2010-11-14
  • 打赏
  • 举报
回复
能read到的信息, 都是服务端代码发给你的, 你可以把这些数据用16进制数据的形式输出, 看看是些啥东西;
或者保存到文件, 再分析 更好
AnshuWang 2010-11-14
  • 打赏
  • 举报
回复
发送到服务器有时接收不到 返回信息 为什么?、
老紫竹 2010-11-14
  • 打赏
  • 举报
回复
2个线程,1个负责发送,另一个负责接收。

分开做,别混在一起

50,545

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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