客户端与服务器建立连接
服务器搭建
public static void main(String[] args) throws IOException {
//搭建服务器
ServerSocket serverSocket = new ServerSocket(55565);
System.out.println("服务器开启成功");
}
客户端连接
public static void main(String[] args) throws IOException {
//与服务器进行连接
Socket socket=new Socket("127.0.0.1",55565);
}
服务器连接
等待客户端连接
Socket socket = serverSocket.accept();
System.out.println("一个客户端连接了");
利用多线程来让多个用户连接
public class MyServer {
/*
* 服务器
* */
public static void main(String[] args) throws IOException {
//搭建服务器
ServerSocket serverSocket = new ServerSocket(55565);
System.out.println("服务器开启成功");
while (true) {
new Thread(() -> {
try {
//等待客户连接
Socket socket = serverSocket.accept();
System.out.println("一个客户端连接了");
//向客户端发送消息
//1.获取输出流
OutputStream os = socket.getOutputStream();
//2.将输出流的的类型转化为打印流
PrintStream ps=new PrintStream(os);
ps.println("欢迎您的到来!");
//接收客户端发来的消息
InputStream is = socket.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String text=br.readLine();
System.out.println("客户端消息:"+text);
} catch (IOException e) {
e.printStackTrace();
}
}).start();
}
}
}
客户端完整代码(信息接收与发送)
public class MyClient {
/*
* 客户端
* */
public static void main(String[] args) throws IOException {
//与服务器进行连接
Socket socket=new Socket("127.0.0.1",55565);
//接收服务器发来的消息
//1.获取输入流
InputStream is=socket.getInputStream();
//2.将输入流的类型转换为字符流 一次读一行
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String text=br.readLine();
System.out.println("服务器消息:"+text);
OutputStream os = socket.getOutputStream();
PrintStream ps = new PrintStream(os);
ps.println("我回来了");
}
}