시스템 구조 대부분의 윈속 API들은 winsock2.h에 선언되어 있고 ws2_32.dll에 구현되어 있다. 마이크로소프트의 윈속 확장 함수들은 mswsock.dll에 구현되어 있다. 이런 확장 함수들은 MicroSoft에서 임의로 추가한 것이라 특정 버전의 Windows에서만 작동한다. 응용프로그램이 윈속 API를 호출하면 ws2_32.dll에 존재하는 함수를 호출하게 된다. 윈속 dll의 함수들은 다음과 같은 방법으로 동작한다. 1. 입력된 파라미터들이 올바른지 검사 2. 어떤 프로토콜 서비스 프로바이더에게 명령을 전달할지 결정 윈속 카탈로그(winsock catalog)에는 여러 개의 프로바이더가 존재할 수 있다. 따라서 ws2_32.dll은 어떤 프로바이더에게 이 호출을 전달할지 결정한다. 프로..
데이터의 전송과 수신은 네트워크 프로그램의 전부라고도 할 수 있다. 데이터를 주고받기 위한 데이터 형식은 바이트 단위의 char형. 따라서 데이터의 형식은 문자열이든 바이너리든 상관없이 어떠한 데이터 형식도 전송이 가능하다. 데이터를 전송하는 함수는 send/WSASend 수신하는 함수는 recv/WSARecv가 있다. send와 WSASend int send( SOCKET s, const char FAR * buf, int len, int flags ); s : 데이터를 전송하길 원하는 연결된 소켓이다. buf : 전송할 데이터가 담긴 char형 buffer이다. len : 전송할 데이터의 크기 flag : 0 혹은 MSG_DONTROUTE, MSG_OOB 같은 값으로 설정한다. flags는 위 값들의..
윈속으로 개발하기 위한 준비 일반적으로 WinSock2.h를 include 해야 한다. WinSock2.h로 프로그래밍을 하기 위해서는 ws2_32.lib를 추가해줘야 한다. 추가는 프로젝트 속성 -> 링커 -> 입력 -> 추가 종속성에 ws2_32.lib를 추가 int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData ); wVersionRequested : 로드하기를 원하는 윈속 라이브러리 버전을 지정 MAKEWORD(x,y) 매크로 사용 lpWSAData : LPWSADATA의 포인터, 로드된 라이브러리에 대한 정보가 리턴 typedef struct WSAData { WORD wVersion; //앞으로 사용하게 될 윈속 버전 WORD wHighVe..
- Total
- Today
- Yesterday
- 생활코딩#동영상을#글로#html
- 안드로이드 스튜디오
- javascript
- 정렬
- HTML
- 동영상을
- 선택자
- 조건문
- 문자열
- 생활코딩#MySQL
- 관계형데이터베이스
- Link
- 언리얼엔진4
- 기초
- PHP&MySQL
- visual studio code
- 네트워크 프로그래밍
- 변수
- 객체
- C언어
- css
- 언리얼엔진
- php
- 글로
- GRID
- 알고리즘
- 차이점
- 생활코딩
- TAG
- inline
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |