问答详情
源自:3-3 编程实现基于 TCP 的 Socke t通信之客户端

Socket客户端循环发送多条信息给服务端,发一次socket自动关闭?

目的:通过Socket客户端发送多条数据给服务端

错误:

我是客户端0,服务器说:欢迎您!

java.net.SocketException: Socket is closed

at java.net.Socket.getOutputStream(Socket.java:912)

at com.imooc.MultiClient.main(MultiClient.java:23)

方法:

//1.创建客户端Socket,指定服务器地址和端口

Socket socket=new Socket("localhost", 8888);

//2.通过for循环发送多条数据

for(int i=0;i<6;i++){

//获取输出流,向服务器端发送信息

OutputStream os=socket.getOutputStream();//字节输出流

PrintWriter pw=new PrintWriter(os);//将输出流包装为打印流

pw.write("用户名:"+i+";密码:789");

pw.flush();

socket.shutdownOutput();//关闭输出流

//获取输入流,并读取服务器端的响应信息

InputStream is=socket.getInputStream();

BufferedReader br=new BufferedReader(new InputStreamReader(is));

String info=null;

while((info=br.readLine())!=null){

System.out.println("我是客户端"+i+",服务器说:"+info);

}

//关闭资源

br.close();

is.close();

pw.close();

os.close();

}

//3、关闭socket

socket.close();

提问者:rosycloud 2016-12-10 15:29

个回答

  • 慕工程6477580
    2020-03-31 11:46:12

    123

  • 鹰空捍卫者
    2016-12-10 18:55:10

    你看一下5-1,也许就明白了