当前位置: 代码迷 >> J2SE >> Socket客户端给服务端发信息,服务端显示为null,该怎么处理
  详细解决方案

Socket客户端给服务端发信息,服务端显示为null,该怎么处理

热度:138   发布时间:2016-04-24 02:17:44.0
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类型的方法在表示发送了消息的
------解决方案--------------------
资源一定要关闭的!客户端,服务器端都要有接受与发送,连接没有建立起来可能是!
  相关解决方案