返回

使用TCP流式套接字进行编程

前端

TCP流式套接字的基本编程

TCP流式套接字是网络编程中常用的数据传输机制,可以实现可靠的面向连接的数据传输,广泛应用于各种网络应用程序中。

面向连接的客户/服务器程序的工作模型

面向连接的客户/服务器程序通常采用如下工作模型:

  1. 服务器端程序首先创建TCP套接字,并监听某个端口。
  2. 客户端程序创建TCP套接字,并连接到服务器端程序监听的端口。
  3. 服务器端程序接受客户端程序的连接请求,并建立连接。
  4. 客户/服务器程序之间可以通过连接进行双向数据传输。
  5. 数据传输完成后,客户端/服务器程序关闭连接。

服务器端程序

服务器端程序通常负责以下任务:

  1. 创建TCP套接字,并监听某个端口。
  2. 接受客户端程序的连接请求,并建立连接。
  3. 从客户端程序接收数据。
  4. 向客户端程序发送数据。
  5. 关闭连接。

客户端程序

客户端程序通常负责以下任务:

  1. 创建TCP套接字。
  2. 连接到服务器端程序监听的端口。
  3. 向服务器端程序发送数据。
  4. 从服务器端程序接收数据。
  5. 关闭连接。

示例代码

以下是一个简单的服务器端程序示例:

import java.net.*;
import java.io.*;

public class Server {

    public static void main(String[] args) throws IOException {
        // 创建TCP套接字
        ServerSocket serverSocket = new ServerSocket(8080);

        // 监听端口
        while (true) {
            // 接受客户端程序的连接请求
            Socket socket = serverSocket.accept();

            // 从客户端程序接收数据
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String line = in.readLine();

            // 向客户端程序发送数据
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
            out.println("Hello, world!");

            // 关闭连接
            socket.close();
        }
    }
}

以下是一个简单的客户端程序示例:

import java.net.*;
import java.io.*;

public class Client {

    public static void main(String[] args) throws IOException {
        // 创建TCP套接字
        Socket socket = new Socket("localhost", 8080);

        // 向服务器端程序发送数据
        PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
        out.println("Hello, world!");

        // 从服务器端程序接收数据
        BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String line = in.readLine();

        // 关闭连接
        socket.close();
    }
}

总结

本文介绍了使用TCP流式套接字进行编程的基础知识,重点介绍了面向连接的客户/服务器程序的工作模型,服务器端程序和客户端程序的设计和实现。本文还提供了有用的示例代码,帮助您轻松理解和应用TCP流式套接字编程。通过本文的学习,您将掌握TCP流式套接字编程的基本原理和使用方法,并能够开发出简单的网络应用程序。