C

[C] TCP/IP - 주소 및 포트 설정하기

qkrwngus 2021. 2. 18. 23:50

Desc :

 

 


Source Code :

#include <stdio.h>
#include <winsock2.h>

#pragma comment(lib,"wsock32.lib")

void main()
{
	SOCKET s;	// 소켓 디스크립터
	WSADATA wsaData;
	SOCKADDR_IN sin;	// 소켓 구조체

	if (WSAStartup(WINSOCK_VERSION, &wsaData) != 0)
	{
		printf("WSAStartup 실패, 에러코드 = %d\n", WSAGetLastError());
		return;
	}

	s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);	// TCP/IP용 소켓 생성

	if (s == INVALID_SOCKET)
	{
		printf("소켓 생성 실패, 에러코드: %d \n", WSAGetLastError());
		WSACleanup();	//WS2_32.DLL의 사용을 종료합니다
		return;
	}

	sin.sin_family = AF_INET;	// 주소 체계 설정
	sin.sin_addr.s_addr = inet_addr("127.0.0.1");	// 접속 주소 설정
	sin.sin_port = htons(2001);	// 포트 번호 설정

	if (connect(s, (struct sockaddr*)&sin, sizeof(sin)) != 0)
	{
		printf("접속 실패, 에러코드 = %u \n", WSAGetLastError());
		closesocket(s);
		WSACleanup();
		return;
	}

	if (closesocket(s) != 0)
	{
		printf("소켓 제거 실패, 에러코드 = %u \n", WSAGetLastError());
		WSACleanup();
		return;
	}

	if (WSACleanup() != 0)
	{
		printf("WSACleanup 실패, 에러코드 = %u \n", WSAGetLastError());
		return;
	}

	puts("127.0.0.1의 2001번 포트에 접속을 성공하였습니다.");
}

 


Result :

10061 대상컴퓨터에서 연결을 거부했다.............