Java Socket实现客户端与服务端通信实例

首先,创建一个Server.java的服务器端类

package socket;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * Created by ljb on 2018-06-10.
 */
public class Server {
    public static void main(String[] args){
        BufferedReader br = null;
        PrintWriter pw = null;
        try{
            ServerSocket server = new ServerSocket(2000);
            Socket socket = server.accept();
            //获取输入流
            br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            //获取输出流
            pw = new PrintWriter(socket.getOutputStream(),true);
            //获取接收到的数据
            String s = br.readLine();
            pw.println(s);
            //打印获取到的数据
            System.out.println(s);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try{
                br.close();
                pw.close();
            }catch (Exception e){
            }
        }
    }
}

然后创建客户端类 Client.java

package socket;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

/**
 * Created by ljb on 2018-06-10.
 */
public class Client {
    public static void main(String[] args){
        BufferedReader br = null;
        PrintWriter pw = null;
        try{
            Socket socket = new Socket("localhost",2000);
            //获取输入流与输出流
            br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            pw = new PrintWriter(socket.getOutputStream(),true);
            //向服务器发送数据
            pw.println("hello,world");
            String s = null;
            while (true){
                s = br.readLine();
                if(s != null){
                    break;
                }
            }
            System.out.println(s);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try{
                br.close();
                pw.close();
            }catch (Exception e){
            }
        }
    }
}

然后先运行服务端类Server.java,然后再运行Client.java

服务端会收到客户端传到的 hello,world 打印出来后,并转发给客户端,客户端也会打印出来


猜你喜欢

转载自blog.csdn.net/weixin_40099554/article/details/80641671