在Windows系统下使用C++创建Tcp客户端
由于项目中偶尔会要求用c++实现小功能例如数据传输数据存储,因此在此记录一种简单的用法。
(此文章重点在于使用,不在于全面。)
代码如下:
#include <iostream>
#include <WinSock2.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
#pragma comment(lib,"WS2_32.lib")
//tcp通信客户端
void createTcpClient()
{
//初始化Socket
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
sockaddr_in serverAddr;
int client;
char sendbuf[200] = "";
char recvbuf[200] = "";
SOCKET clientSock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
serverAddr.sin_family = AF_INET;
serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
serverAddr.sin_port = htons(9999);
while (true)
{
if (connect(clientSock, (struct sockaddr *)&serverAddr, sizeof(serverAddr)) < 0)
{
printf("try connect 127.0.0.1 fail!\n");
//未连接成功,3s重连
Sleep(3000);
continue;
}
else
{
//连接成功,退出此循环
printf("try connect 127.0.0.1 success!\n");
break;
}
}
while (1)
{
printf("Input your world:>");
scanf("%s", sendbuf);
send(clientSock, sendbuf, strlen(sendbuf), 0);
recv(clientSock, recvbuf, 200, 0);
printf("recv data of my world is: %s\n", recvbuf);
memset(sendbuf, 0, 200);
memset(recvbuf, 0, 200);
}
}
void main()
{
createTcpClient();
}
运行结果如下:
有疑问可联系邮箱:1280392860@qq.com