java实现socket通信


编写一个案例实现客户端向服务器发送信息,服务器读取客户端发送的信息,并将读取的数据写入到数据流中。
 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
......*/

微信打赏

 

posted @ 2020-02-06 16:27  弹钢琴的大闸蟹  阅读(424)  评论(0)    收藏  举报