一,基础

1,服务端

package net.ittimeline.java.network.socket.tcp;

import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * Tcp服务器
 * 1,指定端口 使用ServerSocket创建服务器
 * 2,阻塞式等待连接 accept
 * 3,操作:输入输出流操作
 * 4,释放资源
 */
public class TcpServer {
    public static void main(String[] args) {
        try {
            // 1,指定端口 使用ServerSocket创建服务器
            ServerSocket server = new ServerSocket(8888);
            // 2,阻塞式等待连接 accept
            Socket client = server.accept();//进入了一个client
            // 3,操作:输入输出流操作
            DataInputStream dis = new DataInputStream(client.getInputStream());
            String data = dis.readUTF();
            System.out.println(data);
            // 4,释放资源
            dis.close();
            client.close();
            server.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

2,客户端

package net.ittimeline.java.network.socket.tcp;

import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;

/**
 * 创建客户端
 * 1,使用Socket创建客户端: 建立链接 (需要服务器服务器的地址和端口)
 * 2,操作:输入输出流控制
 * 3,释放资源
 */
public class TcpClient {
    public static void main(String[] args) {
        try {
            //1,使用Socket创建客户端: 建立链接 (需要服务器服务器的地址和端口)
            Socket client = new Socket("localhost",8888);
            // 2,操作:输入输出流控制
            DataOutputStream dos = new DataOutputStream(client.getOutputStream());
            String data = "hello";
            dos.writeUTF(data);
            dos.flush();
            // 3,释放资源
            dos.close();
            client.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3,结果

     3.1 , 说明:客户端连接到服务端后,发了一个“hello”信息

     3.2 ,图片

Java之Tcp基础_java