2024年4月28日发(作者:)
printf("Client recvBuf = %sn", recvBuf);
iLen = send(socket_cli, sendBuf, strlen(sendBuf) + 1, 0);
if (iLen < 0) {
printf("send errorNum = %dn", GetLastError());
return -1;
}
closesocket(socket_cli);
WSACleanup();
return 0;
}
UDP通讯
Server端
#include
#include
#include
#pragma warning(disable:4996)
#pragma comment(lib, "ws2_")
using namespace std;
#include
#include
int main() {
// 初始化套接字库
WORD wVersion; WSADATA wsaData;
int err; wVersion = MAKEWORD(1, 1);
err = WSAStartup(wVersion, &wsaData);
if (err != 0) {
return err;
}
if (LOBYTE(on) != 1 || HIBYTE(on) != 1) { WSACleanup(); return -1;
}// 创建套接字
SOCKET sockSrv = socket(AF_INET, SOCK_DGRAM, 0);
cout << "socket创建成功" << endl;
SOCKADDR_IN addrSrv;
_addr.S_un.S_addr = htonl(INADDR_ANY);
_family = AF_INET;
_port = htons(6003);
// 绑定套接字
bind(sockSrv, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));
// 等待并接收数据
SOCKADDR_IN addrCli;
int len = sizeof(SOCKADDR_IN);
char recvBuf[100];
char sendBuf[100];
while (true) {
std::cout << "循环" << std::endl;
recvfrom(sockSrv, recvBuf, 100, 0, (SOCKADDR*)&addrCli, &len);
std::cout << recvBuf << std::endl;
sprintf_s(sendBuf, 100, "Ack %s", recvBuf);
sendto(sockSrv, sendBuf, strlen(sendBuf) + 1, 0, (SOCKADDR*)&addrCli, len);
}closesocket(sockSrv);
WSACleanup();
system("pause");
return 0;
}
Client端:
int main() {
{ // 加载套接字库
WORD wVersion;
WSADATA wsaData;
int err; wVersion = MAKEWORD(1, 1);
err = WSAStartup(wVersion, &wsaData);
if (err != 0) {
return err;
}if (LOBYTE(on) != 1 || HIBYTE(on) != 1) {
WSACleanup(); return -1; }
// 创建套接字
SOCKET sockCli = socket(AF_INET, SOCK_DGRAM, 0);
SOCKADDR_IN addrSrv;
_addr.S_un.S_addr = inet_addr("127.0.0.1");
_port = htons(6001);
发布评论