ZBLOG

send代码实例

当然可以!以下是一个简单的使用 send 函数进行 TCP socket 通信的 C++ 代码示例。这个例子展示了如何创建一个 socket,连接到服务器,并发送数据。

示例代码

#include <iostream>
#include <cstring>      // For memset
#include <unistd.h>    // For close
#include <sys/socket.h> // For socket, connect, send
#include <netinet/in.h> // For sockaddr_in
#include <arpa/inet.h>  // For inet_pton

int main() {
    int sockfd;
    struct sockaddr_in serverAddr;

    // 创建 socket
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if (sockfd < 0) {
        std::cerr << "Error creating socket" << std::endl;
        return -1;
    }

    // 配置服务器地址结构
    memset(&serverAddr, 0, sizeof(serverAddr)); // 清零结构体
    serverAddr.sin_family = AF_INET;            // IPv4
    serverAddr.sin_port = htons(8080);          // 设置端口号 (8080)
    
    // 将 IP 地址从文本格式转换为网络格式
    if (inet_pton(AF_INET, "127.0.0.1", &serverAddr.sin_addr) <= 0) {
        std::cerr << "Invalid address or Address not supported" << std::endl;
        return -1;
    }

    // 连接到服务器
    if (connect(sockfd, (struct sockaddr *)&serverAddr, sizeof(serverAddr)) < 0) {
        std::cerr << "Connection failed" << std::endl;
        return -1;
    }

    const char *message = "Hello from client!";
    
    // 使用 send 函数发送数据
    ssize_t bytesSent = send(sockfd, message, strlen(message), 0);
    
    if (bytesSent < 0) {
        std::cerr << "Error sending message" << std::endl;
        close(sockfd);
        return -1;
    }
    
    std::cout << "Sent " << bytesSent << " bytes: " << message << std::endl;

  	//关闭socket 
	close(sockfd);

  	return 0; 
}

编译和运行

确保在本地有一个 TCP 服务器在监听 127.0.0.1:8080。然后,你可以使用 g++ 编译并运行这个程序:

g++ -o tcp_client tcp_client.cpp
./tcp_client

注意事项

  • 确保你的服务器已经启动并监听相应的端口(本例中为 8080)。
  • 此示例使用的是 IPv4 和 TCP 协议。
  • 在实际应用中,错误处理应该更加完善,以便于调试和维护。


    内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=6468

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?