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

来源:3-3 编程实现基于 TCP 的 Socke t通信之客户端

rosycloud

2016-12-10 15:29

目的:通过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();

写回答 关注

2回答

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

    123

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

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

    rosycl...

    是因为输出流关了所以socket关了?

    2016-12-12 21:26:54

    共 1 条回复 >

Java Socket应用---通信是这样练成的

分享的是 Java 中的网络编程,使用Socket实现网络聊天通信

125013 学习 · 590 问题

查看课程

相似问题