这是服务端的代码package com.company.MySocketTest;import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;public class TCPServer { public static void main(String[] args) {
try {
//创建ServerSocket
ServerSocket serverSocket=new ServerSocket(12345);
//调用accept等待客户端连接
System.out.println("服务器已经启动,等待客户端连接...");
Socket socket=serverSocket.accept();
InputStream is = null;
InputStreamReader isr = null;
BufferedReader br = null;
OutputStream os = null;
PrintWriter pw = null; //输入流
is = socket.getInputStream();
isr=new InputStreamReader(is);
br=new BufferedReader(isr);
String info=null;
while((info=br.readLine())!=null){
System.out.println("我是服务器,客户端说:"+info);
}
//输出流
os=socket.getOutputStream();
pw=new PrintWriter(os);
pw.write("欢迎您!");
pw.flush(); //关闭资源
pw.close();
os.close();
br.close();
isr.close();
is.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端代码
刚学socket,之前看的慕课网的socket教程,不过我运行起来就是两边建立连接后就没反应了
查了一下有说rendline()那边阻塞的,要用socket.shutdown()添加-1,但我调用后就会显示Connection reset,大概是连着socket一起关掉了。
有没有哪位大神教一下
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货