编写一个案例实现客户端向服务器发送信息,服务器读取客户端发送的信息,并将读取的数据写入到数据流中。
1 //服务器端的代码
2 package test;
3 import java.io.*;
4 import java.net.ServerSocket;
5 import java.net.Socket;
6 public class SoketServer {
7 public static void main(String[] args) {
8 ServerSocket serverSocket = null;
9 Socket clientSocket = null;
10 BufferedReader in = null;
11 int port = 5000;
12 String str = null;
13 try {
14 serverSocket = new ServerSocket(port); //创建服务器套接字
15 System.out.println("服务器开启,等待连接。。。");
16 clientSocket = serverSocket.accept();// 获得链接
17 //接收客户端发送的内容
18 in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
19 while (true) {
20 str = in.readLine();//从套接字中读取一行作为数据
21 System.out.println("客户端发送的内容为:" + str);
22 Thread.sleep(2000);
23 }
24 } catch (IOException | InterruptedException e) {
25 // TODO 自动生成的 catch 块
26 e.printStackTrace();
27 }
28 }
29 }
//客户端的代码*/
package test;
import java.io.*;
import java.net.Socket;
public class SoketClient {
public static void main(String[] args) {
Socket socket = null;
PrintWriter out = null;
BufferedReader in = null;
String serverIP = "127.0.0.1"; //服务器端ip地址
int port = 5000; //服务器端端口号
try {
socket = new Socket(serverIP, port);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
while (true) {
int number = (int) (Math.random() * 10) + 1;
System.out.println("客户端正在发送的内容为:" + number);
out.println(number);
Thread.sleep(2000);
}
} catch (IOException | InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
/*
执行过程及打印信息:
先执行服务器端程序,然后执行客户端程序。
客户端每隔 2 秒向服务器发送一个数字,如下所示。
客户端正在发送的内容为:10
客户端正在发送的内容为:5
客户端正在发送的内容为:10
客户端正在发送的内容为:4
客户端正在发送的内容为:3
服务器端会将客户端发送的数据输出到控制台,如下所示。
服务器幵启,等待连接。。。
客户端发送的内容为:7
客户端发送的内容为:2
客户端发送的内容为:10
客户端发送的内容为:5
客户端发送的内容为:10
......*/
微信打赏
![]()