1. 윈속을 위한 헤더 및 라이브러리 설정
- winsock2.h 헤더 파일을 포함 한다.
- ws2_32.lib 라이브러리를 링크 시킨다.
- 윈속 사용을 위한 라이브러리 초기화 및 해제
* Project -> Setting -> Link -> Object/library modules: 맨끝에 ws2_32.lib를 써준다.
2. 윈속 사용을 위한 라이브러리 초기화 및 해제
- 윈속 관련 라이브러리 초기화 함수.
#incldue <winsock2.h>
int WSAStartup(
/* 내가 초기화 하고자 원하는 라이브러리 버전.
ex) Version 3.4(3 = 주 버전, 4 = 부 버전)
0x0403(16진수, 04 = 부 버전, 03 = 주 버전, 16진수로 라이브러리 버전 전달) */
WORD wVersionRequested,
LPWSADATA lpWSAData
);
* WORD = 16-bit unsigned integer
* WSADATA = 구조체.
* LPWSADATA = WSADATA를 가리키는 포인터.
- 윈속 관련 라이브러리 해제 함수.
int WSACleanup(void);
- 버전 정보 16진수로 만드는 함수.
WORD MAKEWORD(BYTE bLow, BYTE bHigh);
* BYTE bLow = 주 버전.
* BYTE bHigh = 구 버전.
3. 윈속 기반의 소켓 관련 함수.
SOCKET socket(int af, int type, int protocol);
int bind(SOCKET s, const struct sockaddr FAR * name, int namelen);
int listen(SOCKET s, int backlog);
SOCKET accept(SOCKET s, struct sockaddr FAR * addr, int FAR * addrlen);
int connect SOCKET s, const struct sockaddr FAR * name, int namelen);
* 소켓 핸들도 정수형 데이터.
4. 윈속 기반의 데이터 입 출력 함수.
- 데이터 출력함수.
#include <winsock2.h>
int send(SOCKET s, const char FAR *buf, int len, int flags);
- 데이터 입력함수.
#incldue <winsock2.h>
int recv(SOCKET s, char FAR *buf, int len, int flags);
* int flags 부분만 빼면 리눅스 기반의 인자값들과 동일하게 전달함.
* Project -> Setting -> Debug -> Program arguments(main 함수 인자값 전달 설정)
'[+] Information > [-] Network' 카테고리의 다른 글
[2009/05/26] 예제소스(make_socket_linux.c, make_socket_win.c) (0) | 2009.05.26 |
---|---|
[2009/05/26] 소켓의 생성과 프로토콜의 설정 (0) | 2009.05.26 |
[2009/5/24] 예제소스(low_open.c, low_read.c, fd.seri.c) (0) | 2009.05.24 |
[2009/5/24] 파일의 조작 (0) | 2009.05.24 |