c++ windows socket send

在C++ Windows Socket编程中,可以使用send函数向另一端发送数据。

send函数的语法如下:

int send(
  SOCKET s,
  const char *buf,
  int len,
  int flags

参数说明:

  • s:一个已连接的socket句柄。
  • buf:指向要发送的数据的指针。
  • len:要发送的数据的长度。
  • flags:发送数据的标志。
  • send函数的返回值是发送的字节数。如果发生错误,返回值为SOCKET_ERROR。

    以下是一个简单的示例程序,演示如何使用send函数向另一端发送数据:

    #include <winsock2.h>
    #include <ws2tcpip.h>
    #include <stdio.h>
    #pragma comment(lib, "Ws2_32.lib")
    int main()
        // 初始化Winsock
        WSADATA wsaData;
        int iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
        if (iResult != 0) {
            printf("WSAStartup failed: %d\n", iResult);
            return 1;
        // 创建socket
        SOCKET ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
        if (ConnectSocket == INVALID_SOCKET) {
            printf("socket failed: %ld\n", WSAGetLastError());
            WSACleanup();
            return 1;
        // 连接服务器
        sockaddr_in serverAddr;
        serverAddr.sin_family = AF_INET;
        serverAddr.sin_port = htons(27015);
        inet_pton(AF_INET, "127.0.0.1", &serverAddr.sin_addr);
        iResult = connect(ConnectSocket, (sockaddr*)&serverAddr, sizeof(serverAddr));
        if (iResult == SOCKET_ERROR) {
            printf("connect failed: %d\n", WSAGetLastError());
            closesocket(ConnectSocket);
            WSACleanup();
            return 1;
        // 发送数据
        const char* sendbuf = "Hello, server!";
        iResult = send(ConnectSocket, sendbuf, strlen(sendbuf), 0);
        if (iResult == SOCKET_ERROR) {
            printf("send failed: %d\n", WSAGetLastError());
            closesocket(ConnectSocket);
            WSACleanup();
            return 1;
        // 关闭socket
        iResult = shutdown(ConnectSocket, SD_SEND);
        if (iResult == SOCKET_ERROR) {
            printf("shutdown failed: %d\n", WSAGetLastError());
            closesocket(ConnectSocket);
            WSACleanup();
            return 1;
        closesocket(ConnectSocket);
        WSACleanup();
        return 0;
    

    在这个示例程序中,首先使用WSAStartup函数初始化Winsock,然后创建一个socket,然后连接到服务器。最后,使用send函数发送数据,并关闭socket。

    希望这个示例程序可以帮助您理解如何使用send函数在C++ Windows Socket编程中发送数据。

  •