본문 바로가기
Tip&Skill

[TCP/IP] 윈도우소켓 주소및포트설정

by 하센세 2009. 3. 23.

#include  
#include  
 
#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;
	}
  
    puts(wsaData.szDescription);   
    puts(wsaData.szSystemStatus);   
  
    s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);   

	if(s==INVALID_SOCKET){
		printf("소켓 생성 실패, 에러코드 : %d\n", WSAGetLastError());
		WSACleanup();
		return;
	}
	
	puts("You can use winsock!");   
	
	sin.sin_family = AF_INET;
	sin.sin_addr.s_addr = inet_addr("127.0.0.1");
	sin.sin_port = htons(21);
	
	if(connect(s, (struct sockaddr*)&sin, sizeof(sin)) != 0){
		printf("접속 실패, 에러코드 = %u\n", WSAGetLastError());
		closesocket(s);
		WSACleanup();

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

	if(WSACleanup() != 0){
		printf("WSACleanup 실패, 에러코드 = %u\n", WSAGetLastError());
		return;
	}
	
	puts("127.0.0.1의 21번 포트에 접속을 성공하였습니다.");
}