关于socket的接收堵塞问题
来源:互联网 发布:贵金白银实时数据接口 编辑:程序博客网 时间:2024/06/11 05:41
1.
writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter( socket.getOutputStream())), true); writer.print(Msg); writer.flush();
因为writer.print()比writer.println()少了换行符,客户端永远收不到一行结束的标志。
用BufferdWriter时也会出现同样问题
writer = new BufferedWriter(new OutputStreamWriter( socket.getOutputStream())); writer.write(msg); writer.flush();
需要加一行writer.newLine();在write(msg)之前
2.
比如上面,如果我在flush之后加上writer.close();那么关联这个writer的socke也会关闭,所以流的关闭应在收发都结束之后再关闭。
3.
reader = new BufferedReader(new InputStreamReader( socket.getInputStream())); String msg = reader.readLine(); return msg;
就像上面这样写
如果想接收多行数据,就要用while循环
StringBufferstrbuf=new StringBuffer(); Stringline=null; while((line=reader.readLine())!=null){ strbuf.append(line+"\n"); } return strbuf.toString();
while((line=reader.readLine())!=null){ if(line.equalsIgnoreCase("end")){ break; } strbuf.append(line+"\n"); }
- 关于socket的接收堵塞问题
- 关于socket的接收堵塞问题
- 关于socket的接收堵塞问题
- SOS-关于Socket类接收的问题
- 关于Socket IO模式下 read堵塞问题
- socket堵塞的解决方法
- socket客户端接收信息被堵塞
- 一个关于UDP socket服务端接收长度不正确的问题
- WSAAsyncSelect模型Socket消息堵塞问题
- 关于异步socket接收数据的困惑
- 关于Android的Socket接收C/C++的char大于128时的问题
- Socket接收问题
- 碰上usleep导致线程堵塞的问题
- Javascript堵塞问题的解决[转]
- 碰上usleep导致线程堵塞的问题
- 关于udp socket recvfrom函数的一个易错问题: 如果应用程序指定的接收长度不够怎么办?
- 关于Erlang Socket的三种消息接收模式
- 关于socket flush()目标端接收不到数据,close()可以接收到数据的问题
- Qt透明按钮控件
- 怎样用vfp命令替换excel的表里的单元格?
- 【cocos2d-x入门实战】微信飞机大战讲解
- UpdateLayeredWindow和SetLayeredWindowAttributes (我记得转过的啊啊啊啊啊)
- 编译错误: C++ compiler cannot create executables
- 关于socket的接收堵塞问题
- ffmpeg用g++编译时的注意事项
- 字符串Hash函数
- 运行图表向导总是提示ole错误,怎么解决呢?
- Dwz手册的补充说明和常见问题
- 通用导出CSV格式文件
- 我是如何诱骗你的-高级钓鱼技术一文中提到的MSF中的马和源代码
- why wrong??
- Modernizr:专为HTML5和CSS3开发的功能检测类库