Java TCP网络编程

2020-02-02  本文已影响0人  粑粑八成

1、先建立服务器端,服务器端阻塞式接受客户端连接
2、拿到客户端socket对象操作输入输出流

package TCPTest;

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

/**
 * 创建客户端
 * 1、建立连接 使用Socket创建客户端,需要指定服务器的地址和端口
 * 3、操作:输入输出流操作
 * 4、释放资源
 */
public class Client {

  public static void main(String[] args) throws IOException {

    // 1、建立连接 使用Socket创建客户端,需要指定服务器的地址和端口
    Socket client = new Socket("localhost", 8888);
    // 3、操作:输入输出流操作
    DataOutputStream dos = new DataOutputStream(client.getOutputStream());
    String data = "hello";
    dos.writeUTF(data);
    dos.flush();

    DataInputStream dis = new DataInputStream(client.getInputStream());
    System.out.println(dis.readUTF());
    // 4、释放资源
    dos.flush();
    client.close();
  }
}

package TCPTest;

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

/**
 * 创建服务器
 * 1、指定端口 使用serverSocket创建服务器
 * 2、阻塞式等待连接 accept
 * 3、操作:输入输出流操作
 * 4、释放资源
 */
public class Server {

  public static void main(String[] args) throws IOException {
    // 1、指定端口 使用serverSocket创建服务器
    ServerSocket server = new ServerSocket(8888);
    // 2、阻塞式等待连接 accept
    Socket client = server.accept();
    System.out.println("一个客户端建立了连接");
    // 3、操作:输入输出流操作
    DataInputStream dis = new DataInputStream(client.getInputStream());
    String data = dis.readUTF();
    System.out.println(data);

    DataOutputStream dos = new DataOutputStream(client.getOutputStream());
    dos.writeUTF("滚");
    dos.flush();
    // 4、释放资源
    dis.close();
    client.close();

  }
}
上一篇 下一篇

猜你喜欢

热点阅读