为了账号安全,请及时绑定邮箱和手机立即绑定

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();

正在回答

2 回答

123

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

rosycloud 提问者

是因为输出流关了所以socket关了?
2016-12-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信