【发布时间】:2011-10-29 12:32:44
【问题描述】:
我在让这个简单的类工作时遇到问题。它基本上连接到 IMAP 服务器并读取横幅。但是在阅读了所有字符之后,它有点悬。在调试器中,我可以单步执行 while 循环并查看正在读取所有字符并最终退出循环。但是最后一个 System.out.println 语句永远不会到达。
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.Socket;
public class TestClient
{
/**
@param args
*/
public static void main( String[] args ) throws Exception
{
Socket socket = new Socket( "imap.1and1.com", 143 );
DataOutputStream os = new DataOutputStream( socket.getOutputStream() );
BufferedReader reader = new BufferedReader( new InputStreamReader( socket.getInputStream() ) );
StringBuilder sb = new StringBuilder();
char ch = (char) reader.read();
while ( ch != -1 ) {
sb.append( ch );
ch = (char) reader.read();
}
System.out.println( sb.toString() ); /// <--- never prints anything and program just hangs..
}
}
【问题讨论】:
标签: java sockets bufferedreader