一个简单的Java-socket

项目场景:

TCP的server和client


问题描述

Server.java

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
class Server {
    public static void main(String[] args) throws IOException {
        System.out.println("服务端启动了");
        ServerSocket serverSocket = new ServerSocket(7777);
        Socket accept = serverSocket.accept();//服务端接收客户端消息
        // accept等着客户端发送消息,如果客户端一直没有发送,就阻塞线程向下执行
        // 先接受
        InputStream is = accept.getInputStream();
        OutputStream os = accept.getOutputStream();
        Scanner scanner = new Scanner(System.in);
        while (true) {
            byte[] bs = new byte[1024];
            int num = is.read(bs);
            String str = new String(bs, 0, num);
            System.out.println("客户端发送过来的信息" + str);
            // 后发送
            System.out.println("请输入给客户端的回复");
            String str2 = scanner.next();
            os.write(str2.getBytes());
            os.flush();
            // 关闭流和socket
//			is.close();
//			accept.close();
//			serverSocket.close();
        }
    }
}



Client.java

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
class Client {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket("192.168.1.23", 7777);
        OutputStream os = socket.getOutputStream();
        InputStream is = socket.getInputStream();
        // 先发送
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入要发送给服务端的信息");
            String str = sc.next();
            os.write(str.getBytes());
            os.flush();
            // 后接收用数据流
            byte[] bs = new byte[1024];
            int num = is.read(bs);
            String str2 = new String(bs, 0, num);
            System.out.println("服务端给的回复" + str2);

//			os.close();
//			socket.close();
        }
    }
}

版权声明:本文为weixin_43798721原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。