클라이언트와 동일한 컴퓨터에서 실행되는 서버 응용 프로그램과의 간단한 연결을 설정하려고합니다.winsock 연결 방법에서 오류 10038
내 코드는 다음과 같습니다
void Base::Connect(string ip, string port)
{
int status;
SOCKET ConnectSocket = INVALID_SOCKET;
struct addrinfo hints;
struct addrinfo *servinfo; // will point to the results
memset(&hints, 0, sizeof hints); // make sure the struct is empty
hints.ai_family = AF_UNSPEC; // don't care IPv4 or IPv6
hints.ai_socktype = SOCK_STREAM; // TCP stream sockets
// get ready to connect
status = getaddrinfo(ip.c_str(), port.c_str(), &hints, &servinfo);
// Socket Setup
if (ConnectSocket = socket(servinfo->ai_family, servinfo->ai_socktype, servinfo->ai_protocol) == INVALID_SOCKET)
{
printf("[NETWORKING] An error occured when setting up socket\n");
}
// Connect
if (connect(ConnectSocket, servinfo->ai_addr, (int)servinfo->ai_addrlen) == SOCKET_ERROR)
{
int error = WSAGetLastError();
printf("Connect error: ", error);
}
}
미리, 나는 WSAStartup()
를 호출하고이 오류가 발생하지 않습니다. 서버가 켜져 있거나 꺼져 있으면 오류가 변경되지 않습니다.
내가 사용하는 IP는 127.0.0.1이고 포트 80을 통해 연결됩니다. 다른 오류 (1337)로 인해 동일한 오류가 발생했습니다.
분명히 잘못된 것이 있습니까? 무엇이 잘못 될지에 대한 아이디어가 있습니까?
WSAENOTSOCK의 목록을 참조하십시오. 소켓 생성시 괄호 오류가 있습니다 – deviantfan
어디에 괄호 오류가 있습니까? 실제 socket() 메서드로 아무 것도 잘못 찾지 못했습니다 – Dries
아래의 답은 – deviantfan