1.我用Socket连接到服务器,然后发送http协议或者rtsp协议的头信息,在接收返回信息的时候程序先是接收到数据打印出来,然后就一直阻塞无响应。
2.我用SocketChannel也是出现这种情况,先是接收到信息,然后阻塞,最后无限循环打印我的输出信息。这是一种什么情况啊?下面是接收数据的线程代码 class ClientThread extends Thread {
public void run() {
try {
while (selector.select() > 0) {
for (SelectionKey sk : selector.selectedKeys()) {
selector.selectedKeys().remove(sk);
if (sk.isReadable()) {
SocketChannel sc = (SocketChannel)sk.channel();
ByteBuffer buff = ByteBuffer.allocate(8 * 1024);
StringBuilder content = new StringBuilder();
while(sc.read(buff) > 0){
buff.flip();
content.append(charset.decode(buff));
}
System.out.println("信息:" + content);
sk.interestOps(SelectionKey.OP_READ);
}
}
}
} catch(Exception e) {
e.printStackTrace();
}
}
}socket网络编程http协议rtsp协议