为什么我写的javaSocket通信,客户端连接服务端了,然后客户端发送消息给服务端,服务端接收,这个时候服务端接收的文件获取不到,只有等到客户端关闭的时候,服务端才能接到。
这是代码 package server; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args){ //1.创建一个服务器端socket即serversocket指定绑定的端口并监听此端口 ServerSocket serverSocket=null; String info=null; InputStream is=null; OutputStream os=null; try { serverSocket = new ServerSocket(8888); //2.调用accept()方法开始监听,等待客户端的连接 //让客户端一直访问 Socket socket =null; while(true){ socket = serverSocket.accept(); InetAddress ss = socket.getInetAddress(); System.out.println(ss.getHostAddress()); //3.获取输入流,并读取客户端信息 is=socket.getInputStream();//字节输入流 os=socket.getOutputStream(); DataOutputStream dos=new DataOutputStream(os); DataInputStream dis=new DataInputStream(is); // InputStreamReader isr=new InputStreamReader(is);//将字节流转化为字符输入流 // BufferedReader br=new BufferedReader(isr);//为输入流添加缓冲 String s=null; s=dis.readUTF(); while((s=dis.readUTF())!=null){ System.out.println("我是服务器,客户端说"+s); System.out.println("IP"+socket.getInetAddress()); System.out.println("port"+socket.getPort()); } if(socket.isClosed()){ System.out.println("关闭"); }else{ System.out.println("没关闭"); } //4.获取输出流,响应客户端的请求 dos.writeUTF("hello"); dis.close(); socket.close(); } } catch (IOException e) { System.out.println("客户端异常断开"); } } }
小弟跪求大家帮帮忙了!
后台学前端
好帮手慕珊
相关分类