일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- two pointer
- Stored Procedure
- Trie
- Brute Force
- String
- Hash
- Two Points
- MYSQL
- 스토어드 프로시저
- binary search
- 이진탐색
- 그래프
- DP
- 다익스트라
- Dijkstra
- union find
- SQL
Archives
- Today
- Total
codingfarm
4. 소켓 네트워크 프로그램 개발 - 9, 10. 소켓 프로그램(windows) - 작성중 본문
windows는 winsock이라는 독자적인 소켓 프로그래밍 환경을 제공한다.
이 winsock에 대해 알아보겠다.
winsock을 이용한 소켓 프로그래밍
winsock
- Windows Socket API의 줄임말
- Windows 에서의 TCP/IP 기반의 소켓 프로그래밍을 지원하기 위한 소켓 함수들의 모음
- BSD 소켓 기반
- 프로그래밍 방법, 함수, 구조체의 사용법 등이 linux와 크게 차이 없다.
- winsock.dll 파일을 로드해야 사용 가능
- WSAStartup 함수를 호출하여 로드
- WSAStartup : 소켓 프로그래밍에 필요한 dll을 로드
docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsastartup
WSAStartup의 사용방법
1
2
3
4
|
int WSAStartup(
WORD wVersionRequired,
LPWSADATA lpWSAData
);
|
cs |
process에 의한 winsock.dll 의 사용을 개시
- wVersionRequired
- 로드할 winsock의 버전
- lpWSAData
- 소켓 정보를 채움
recv와 send를 통한 데이터 입출력
- windows는 socket을 파일로 보지 않으므로 파일 입출력 함수가 아닌 winsock에서 제공하는 전용 함수로 통신해야함
- read 함수 대신 recv 함수, write 함수 대신 send 함수를 씀
1
2
|
int recv(SOCKET s, char *buf, int len, int flags);
int send(SOCKET s, char *buf, int len, int flags);
|
cs |
위 함수는 BSD 표준 소켓 함수의 입출력 방식을 그대로 채용한것이므로, linux의 read와 write 함수와 함수의 원형 및 사용법이 유사하다.
SOCKET은 unsigned int 의 typedef 형이다.
이들 함수에 대한 자세한 사항은 12장에서 다루겠다.
winsock을 이용한 클라이언트 프로그램의 작성
'TCP IP 소켓 프로그래밍' 카테고리의 다른 글
4. 소켓 네트워크 프로그램 개발 - 9, 10. 소켓 프로그램(linux) (0) | 2021.05.11 |
---|---|
4. 소켓 네트워크 프로그램 개발 - 8. 연결 종료(close 함수) (0) | 2021.05.11 |
4. 소켓 네트워크 프로그램 개발 - 7. 데이터 읽고 쓰기(read/write 함수) (0) | 2021.05.11 |
네트워크 바이트 순서(Network byte order) (0) | 2021.05.11 |
4. 소켓 네트워크 프로그램 개발 - 6. 연결 요청(connect 함수) (0) | 2021.05.10 |
Comments