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

Socket客户端给服务端发信息,服务端显示为null
服务端部分代码:
Java code

Socket socket = server.accept();
                    BufferedReader bfr = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                    StringBuffer messageContent = new StringBuffer();
                    while(bfr.readLine() != null)
                    {
                        messageContent.append(bfr.readLine());
                    }
                    StringBuffer messageRecord = new StringBuffer(showMessage.getText());
                    messageRecord.append(messageContent.toString());
                    messageRecord.append("\n");
                    showMessage.setText(messageRecord.toString());





客户端部分代码:
Java code

Socket socket = new Socket("127.0.0.1",8889);
                PrintWriter out = new PrintWriter(socket.getOutputStream(),true);
                
                out.println(messageContent);
                out.flush();
                out.close();




------解决方案--------------------
客户端没有发送信息,服务器端收到的当然是null啊,两端的发送和接收是交替进行的。客户端添加发送信息的代码 跟服务器端的readLine()是对应的

------解决方案--------------------
你哪里向服务端发信息了?哪句代码发的?
------解决方案--------------------
out.println(messageContent);

messageContent 值是多少?
------解决方案--------------------
while(bfr.readLine() ....你这句意思就是读取信息啊,但是客户端应该有一个类是write类型的方法在表示发送了消息的
------解决方案--------------------
资源一定要关闭的!客户端,服务器端都要有接受与发送,连接没有建立起来可能是!