一个在线运行的系统,主要作为socket服务端提供其他平台访问,平时都很正常,最近出现了一个怪现象,在获取socket请求时建立了连接通道,但是在读取socket的输入流时却读不到任何内容,导致程序一直等待,
比如socket = serverSocket.accept(); 这个获取到socket请求,
但是紧接着
this.in = new PushbackInputStream(new BufferedInputStream(
socket.getInputStream()),32 << 10);
int read = in.read();
这里read就读不到数据,会一直等待知道超时。
已经排除了网络问题,有经验的朋友帮忙定位下问题所在,我个人感觉不在程序上。
比如socket = serverSocket.accept(); 这个获取到socket请求,
但是紧接着
this.in = new PushbackInputStream(new BufferedInputStream(
socket.getInputStream()),32 << 10);
int read = in.read();
这里read就读不到数据,会一直等待知道超时。
已经排除了网络问题,有经验的朋友帮忙定位下问题所在,我个人感觉不在程序上。
解决方案 »
- 如何对获取本机时间进行更新
- 求教io问题
- 请问如何改变系统字体?
- java多线程聊天,两个客户端通过服务端转发消息实现通信,可是为什么信息发不出去,?以下客户端和服务端
- 编译时的错误!!大家帮我看一下
- 菜鸟提问:如何获取产生事件的对象(如JTextField)的具体名称?
- 问:当输入javac hellojava.java后,按回车,dos显示的是“javac不是内部或外部命令,也不是可运行程序或批处理文件.",这是咋回事?
- 请大家看看分析一下,运行时老说空指针错
- 不惜高分!请问用java如何解决文件夹上传问题!!!!!
- String转换辉byte
- 关于this关键字的问题
- 命令行方式运行 报找不到jar包中的类??
的Api解释:public class PushbackInputStream
extends FilterInputStreamPushbackInputStream 为另一个输入流添加性能,即“推回 (push back)”或“取消读取 (unread)”一个字节的能力。在代码片段可以很方便地读取由特定字节值分隔的不定数量的数据字节时,这很有用;在读取终止字节后,代码片段可以“取消读取”该字节,这样,输入流上的下一个读取操作将会重新读取被推回的字节。例如,表示构成标识符字符的字节可能由表示操作符字符的字节终止;用于读取一个标识符的方法可以读取到遇到操作符为止,然后将该操作符推回以进行重读。