下面是一个简单的 TCP 客户端示例代码,使用 C 语言编写。这个客户端将连接到指定的 TCP 服务器,并发送消息,然后接收服务器的回显。
TCP Client 示例
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#define PORT 8080    // 服务器端口
#define BUF_SIZE 1024 // 缓冲区大小
int main() {
    int sock = 0;
    struct sockaddr_in serv_addr;
    char buffer[BUF_SIZE] = {0};
    // 创建 socket 文件描述符
    if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
        printf("Socket creation error \n");
        return -1;
    }
    serv_addr.sin_family = AF_INET; // IPv4
    serv_addr.sin_port = htons(PORT); // 设置服务器端口号
    // 将 IPv4 地址从文本转换为二进制格式
    if (inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr) <= 0) {
        printf("Invalid address/ Address not supported \n");
        return -1;
    }
    // 尝试连接到服务器
    if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
        printf("Connection Failed \n");
        return -1;
    }
    printf("Connected to server\n");
    while (1) {
        printf("Enter message: ");
        fgets(buffer, BUF_SIZE, stdin); // 从标准输入读取消息
        
        send(sock, buffer, strlen(buffer), 0); // 向服务器发送消息
        int valread = read(sock, buffer, BUF_SIZE); // 从服务器接收回显数据
        if(valread > 0){
            buffer[valread] = '\0'; // 确保字符串以 null 字符结束
            printf("Server replied: %s", buffer);
        }
        
        memset(buffer, 0, BUF_SIZE); // 清空缓冲区以便下次使用
    }
   close(sock); //关闭 socket 
   return 0;
}
编译和运行
- 将上述代码保存为 
tcp_client.c。 - 使用以下命令编译:
gcc tcp_client.c -o tcp_client - 在你运行客户端之前,请确保 TCP 服务器已经在运行(请参考之前提供的 TCP Server 示例)。
 - 然后运行客户端:
./tcp_client 
使用示例
当客户端运行后,你可以输入一些文本并按 Enter 键,它会发送该文本到正在运行的 TCP 服务器,并显示从服务器接收到的回显。
注意事项
- 确保你的防火墙设置允许通过指定端口(本例中是8080)的流量。
 - 本代码没有实现错误处理及网络连接断开等复杂情况处理,适合基础学习和演示用途。在实际应用中需要添加更完善的错误处理机制。
内容由零声教学AI助手提供,问题来源于学员提问 


        
        
        
        
        
        
        
        
        
        
                
                
                
                
                
                