socket通信demo

Server.java

package com.hmb;

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String[] args) {
        int port = 8917;
        try {
            System.out.println("server start");
            ServerSocket serverSocket = new ServerSocket(port);
            Socket socket = serverSocket.accept();
            Reader reader = new InputStreamReader(socket.getInputStream());
            char[] chars = new char[1024];
            int len;
            while ((len = reader.read(chars)) != -1) {
                System.out.println(new String(chars, 0, len));
            }
            reader.close();
            socket.close();
            serverSocket.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

  

Client.java

package com.hmb;

import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.Socket;

public class Client {
    public static void main(String[] args) {
        String ip = "127.0.0.1";
        int port = 8917;

        try {
            System.out.println("client start");
            Socket socket = new Socket(ip, port);
            Writer writer = new OutputStreamWriter(socket.getOutputStream());
            writer.write("hello, I am client");
            writer.flush();
            writer.close();
            socket.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

  

先运行Server.java的main方法,再运行Client.java的main方法,此时server的终端就会打印收到的信息

 

posted @ 2023-05-19 00:17  hemeiwolong  阅读(57)  评论(0)    收藏  举报