[윈도우 기반의 서버프로그래밍]
헤더파일
winsock2.h
라이브러리파일
ws2_32.lib
윈도우 기반의 서버프로그래밍에서 서버든 클라이언트든지
저 두가지가 없으면 안됩니다!!!
일단 WSADATA부터 알아볼까요?
typedef struct WSAData
{
WORD wVersion;
WORD wHighVersion;
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char FAR* lpVendorInfo;
} WSADATA, FAR *LPWSADATA;
멤버변수
wVersion
- 윈도우 소켓 버전.
wHighVersion
- 윈도우 소켓의 가장 높은 버전. 통상적으로 wVersion과 같다.
szDescription
- 윈도우 소켓 DLL이 관련한 지위 또는 구성정보를 카피하는 NULL로 끝나는 아스키 문자열.
iMaxSockets
- 하나의 프로세스가 열 수 있는 소켓의 최대 수.
iMaxUdpDg
- 데이터그램 프로토콜의 최대 바이트 단위.
예를 들어, 버클리 소켓은 8192 바이트의 제한을 사용한다. 최저는 512.
lpVendorInfo
- 벤더에 특유의 데이터 structure의 far pointer.
이것이 끝인데 솔직히 모르고 있어도 네트워크 프로그래밍 잘만 된다;;
다음으로 알아볼것은 WSAStartup함수
형태는
int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);
주로 윈속관련 라이브러리를 초기화하고, 그 데이터를 WSADATA에 넣어줄 때 쓰입니다.
매개변수
wVersionRequested : 프로그래머가 사용할 윈속의 버전정보 전달.
lpWSAData : WSADATA라는 구조체 변수의 주소 값 전달.
반환값
- 성공 시 0, 실패 시 0이 아닌 에러코드 값 반환
이렇게 됩니다.
wVersionRequested에는 보통 MAKEWORD라는 함수를 넣는데요
사용법
MAKEWORD(1,2); //주 버전 1, 부 버전 2, 0x0201반환
MAKEWORD(2,2); //주 버전 2, 부 버전 2, 0x0202반환
이렇게 됩니다.
마지막으로 WSACleanup함수입니다.
형태는
int WSACleanup(void); 입니다.
주로 윈속 관련 라이브러리를 해제할 때 사용합니다.
반환값
- 성공 시 0, 실패 시 SOCKET_ERROR반환
int main()
{
WSADATA wsaData;
. . . .
if(WSAStartup(MAKEWORD(2,2), &wsaData) != 0)
Error("WSAStartup() error!");
. . . .
WSACleanup();
return 0;
}
'프로그래밍 > 예전글' 카테고리의 다른 글
DBMS의 종류(관계형, 객체지향형, 객체관계형) (1) | 2010.08.14 |
---|---|
페도라 리눅스 시작하기 (명령어 찾기) (0) | 2010.08.13 |
vmWare를 이용하여 Linux 설치(Fedora) - 3 (0) | 2010.08.13 |
vmWare를 이용하여 Linux 설치(Fedora) - 2 (0) | 2010.08.12 |
vmWare를 이용하여 Linux 설치(Fedora) - 1 (0) | 2010.08.12 |