#pragma warning(disable : 4996)
#include<WinSock2.h>
#include<stdlib.h>
#include<stdio.h>
#include
using namespace std;
void erron(const char* message)
{
printf("%s\n", message);
exit(1);
}
int main(int argc, char* argv[])
{
WSADATA wsaDATA;
SOCKET hSock;
SOCKADDR_IN servaddr;
char serv_port[] = "9901";
if (WSAStartup(MAKEWORD(2, 2), &wsaDATA) != 0)
erron("(WSAStartup(),erron");
hSock = socket(PF_INET, SOCK_STREAM, 0);
if (hSock == INVALID_SOCKET)
erron("socket(),erron");
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(inet_addr("192.16.43.347"));
servaddr.sin_port = htons(atoi(serv_port));
// 问题遇到的现象,指针地址 sockaddr*)&servaddr 结构体传入大小sizeof(servaddr) 都没有问题, 但是依然显示10014
if (connect(hSock, (sockaddr*)&servaddr, sizeof(servaddr) == SOCKET_ERROR)) //客户端地址信息调用时自动分配
{
cout << GetLastError() << endl;
erron("connect(),error");
}
closesocket(hSock);
WSACleanup();
return 0;
char serv_port[] = "9901"; 这一句,改成
char serv_port[] = "9901\0"; //设置\0
//或者直接用:
const char* serv_port = "9901";