日期:2014-05-20  浏览次数:20547 次

Socket获取数据流的一个问题
各位前辈
为什么我的Socket在获取数据流的时候会阻塞在那儿呢??
客户端和服务器端都是一样

客户端的程序片段如下:
System.out.println( "正在连接中... ");
                        Socket   toPeer   =   new   Socket(dst_ip,4000);
                        System.out.println(dst_ip);
                        System.out.println( "socket: "+toPeer);
                        System.out.println( "连接成功 ");
                        System.out.println( "正在获得输入流1... ");
                        ObjectInputStream   stream_from_peer=new   ObjectInputStream(toPeer.getInputStream());
                        System.out.println( "获得输入流1成功 ");
                        System.out.println( "正在获得输出流1... ");
                        PrintStream   stream_to_peer=new   PrintStream(toPeer.getOutputStream());
                        System.out.println( "获得输出流1成功 ");

服务器端的程序片段如下:
  server   =   new   ServerSocket(4000);

                        while(true)
                        {

                                System.out.println( "等待建立SA... ");
                                Socket   serverSocket   =   server.accept();
                                System.out.println( "有主机与本地主机建立SA成功 ");
                                System.out.println( "正在获得输入流... ");
                                ObjectInputStream   stream_from_peer=new   ObjectInputStream(serverSocket.getInputStream());
                                System.out.println( "获得输入流成功 ");
                                System.out.println( "正在获得输出流... ");
                                PrintStream   stream_to_peer=new   PrintStream(serverSocket.getOutputStream());
                                System.out.println( "获得输出流成功 ");
}


程序全停在了socket.getInputStream()方法上
在线等答案
谢谢啦

------解决方案--------------------
你的服务器端输入是ObjectInputStream与客户端输出PrintStream不符。服务端输出与客户端输入也不符
------解决方案--------------------