在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编程中发送数据。