当前位置: 首页 > 工具软件 > C++ Sockets > 使用案例 >

C - Socket编程

邢雨华
2023-12-01

1、创建socket的方法

// 创建套接字
int socketID() {
    int socketID = socket(AF_INET, SOCK_STREAM,0);
    if (socketID != -1 ) {
        return socket id;
    } else {
        return 0;
    }
}

2、绑定端口的方法

// 绑定端口的方法
int bindPort(int:socketID, (const struct socketaddr *)&addr, addrSize) {
    int addrLen = sizeof(addrSize);
    //数据初始化为0
    memset(addr,0,addrLen); 
    //指定套接字长度
    addr.sin_len = addrLen;
    //指定协议簇
    addr.sin_family = AF_INET;
    //指定端口与IP地址
    addr.sin_addr_s_addr = inet_addr("192.168.1.1")
    addr.sin_port = 1024;
    int error = bind(socketID,addr,addrLen);
    return error
} 

3、连接服务器代码

// 连接服务器代码
int connect(int socketID, (struct sockaddr *)&peerAddr, addrLen) {
    int connectID = connect(socketID,peerAddr,addrLen);
    return connectID;
}

4、发送数据

// 发送数据
void sendMessage(char *[] message, int socketID, int port) {
    send(socketID, message, port, 0)
}

5、服务器端监听

// 监听套接字连接
int listenSocketID(int socketID, int number) {
    // number为客户端数量
    int error = listen(socketID, number);
    return error;
}

6、等待客户端连接

// 等待客户端连接
int acceptSocketID(int socketID,(struct sockaddr *)&peerAddr, &addrLen) {
    int error = accept(socketID, peerAddr, addrLen);
    return error;
}

7、接收消息

void recvMessage(int socketID) {
    char buf[1024];
    size_t len = sizeof(buf)
    recv(socketID, buf, len, 0)
    // buf中的数据就是接收到的消息数据
}

 

 类似资料: