今天闲着蛋疼就尝试了一下window环境的网络编程,然后就这样了
#include
#undef _WINSOCKAPI_
#include
#include
#pragma warning(disable : 4996)
int main()
{
SOCKET sock = 0;
struct sockaddr_in addr = { 0 };
char input[32] = { 0 };
char buf[128] = { 0 };
int n = 0;
WSADATA wd = { 0 };
if (WSAStartup(MAKEWORD(2, 2), &wd) != 0)
{
printf("startup error\n");
return -1;
}
sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == INVALID_SOCKET)
{
printf("socker error\n");
return -1;
}
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
addr.sin_port = htons(8888);
if (connect(sock, (struct sockaddr*)&addr, sizeof(addr)) == SOCKET_ERROR)
{
printf("connect error\n");
return -1;
}
printf("connect succeed\n");
while (1)
{
printf("Input: ");
scanf("%s", input);
send(sock, input, strlen(input) + 1, 0);
n = recv(sock, buf, sizeof(buf), 0);
if (n > 0)
{
printf("Receive data: %s\n", buf);
}
else
{
break;
}
}
closesocket(sock);
WSACleanup();
return 0;
}
从代码上来看,应该是可以正常在 Windows 环境下运行的。
但是,从你的报错看应该还要考虑在实际环境中,服务端是否正常运行、网络是否正常通信等其他因素。