윈속

WSACleanup

2015. 4. 13. 18:57

프로그램에서 윈속 관련 함수 사용을 종료할 때 호출한다.

* 프로그램에서 더이상 ws2_32.dll 라이브러리의 기능을 사용하지 않을 때 호출한다.


- 출처 : MSDN


  • 파라메터 없음


Return value : 성공 시 0을 반환하고, 실패 시 SOCKET_ERROR(-1)을 반환한다. 실패에 대한 자세한 정보는 WSAGetLastError 함수를 참고한다.


Header : Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

WSAStartup  (0) 2015.04.13
WaitForMultipleObjects  (0) 2015.04.10
WaitForSingleObject  (0) 2015.04.10
inet_ntoa  (0) 2015.04.10
inet_addr  (0) 2015.04.10

WSAStartup

2015. 4. 13. 18:48

프로그램에서 윈속(Winsock)관련 함수들을 사용하기 전에 호출해야 하는 윈속 초기화 함수이다.


- 출처 : MSDN


  • wVersionRequested

- 윈속 버전을 설정한다.

- 상위 바이트에 Minor, 하위 바이트에 Major 버전을 설정한다.

- 매크로 함수 MAKEWORD(하위 바이트값, 상위 바이트값)에 값을 넣어 설정한다. 


  • lpWSAData

- WSADATA 구조체 변수의 주소를 설정한다.

- 운영체제는 함수 호출 후 초기화 결과의 세부 사항을 이 구조체 변수에 저장한다.


Return value : 성공 시 0을 반환하며, 실패 시 아래의 오류 코드 중 하나를 반환한다.

 - WSASYSNOTREADY : 네크워크 서브 시스템이 네트워크에 접속을 준비할 수 없음

 - WSAVERNOTSUPPORTED : 요구한 윈속의 버전이 지원 안됨

 - WSAEINPROGRESS : 블로킹 윈도우 소켓이 실행 중임

 - WSAEPROCLIM : 동시에 실행 가능한 최대 윈속수에 도달했음

 - WSAEFAULT : lpWSAData가 올바르지 않음


Header : Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

WSACleanup  (0) 2015.04.13
WaitForMultipleObjects  (0) 2015.04.10
WaitForSingleObject  (0) 2015.04.10
inet_ntoa  (0) 2015.04.10
inet_addr  (0) 2015.04.10

inet_ntoa

2015. 4. 10. 16:19

TCP/IP 네트워크 바이트 오더로 구성된 u_long 타입의 IPv4 주소를 수와 점으로 구성된 문자열 타입의 값으로 변환하여 반환한다.


- 출처 : MSDN


  • in

- 변환 할 in_addr 구조체 변수로 구성된 IPv4 값을 설정한다.


Return value : 성공 시 변환 된 문자열 타입의 IPv4 주소가 저장된 메모리의 주소를 반환하고, 실패 시 NULL을 반환한다. 


Header : WinSock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

WaitForMultipleObjects  (0) 2015.04.10
WaitForSingleObject  (0) 2015.04.10
inet_addr  (0) 2015.04.10
ntohl  (0) 2015.04.10
ntohs  (0) 2015.04.10

inet_addr

2015. 4. 10. 16:03

수와 점으로 구성된 문자열 타입의 IPv4 주소 값(예: "192.168.0.100")을 TCP/IP 네트워크 바이트 오더(빅 엔디안) 형태의 u_long 값으로 변환하여 반환한다.


- 출처 : MSDN


  • cp

- 변환 할 수와 점으로 구성된 문자열 타입의 IPv4 주소값을 설정한다.


Return value : 성공 시 변환된 u_long 값을 반환하고, 실패 시 INADDR_NONE(-1)을 반환한다.


Header : Winsock2.h


DLL : ws2_32.dll

'Win32 API' 카테고리의 다른 글

WaitForSingleObject  (0) 2015.04.10
inet_ntoa  (0) 2015.04.10
ntohl  (0) 2015.04.10
ntohs  (0) 2015.04.10
htonl  (0) 2015.04.10

ntohl

2015. 4. 10. 15:49

u_long 타입의 TCP/IP 네트워크 바이트 오더 방식(빅 엔디안)값을 호스트 바이트 오더(인텔 프로세서일 경우 리틀 엔디안)값으로 변환하여 반환한다.

* 바이트 오더란? 1개의 데이터가 1바이트 이상의 값을 가지고 있을 때 저장 되는 순서(바이트 단위)를 말한다. 

  빅 엔디안 : 낮은 주소에서 높은 주소로 저장 되는 형태의 바이트 오더

  예) 0x123456(3bytes)    -->    (낮은주소)  0x12 | 0x34 | 0x56 (높은주소)

  리틀 엔디안 : 높은 주소에서 낮은 주소로 저장되는 형태의 바이트 오더

  예) 0x123456(3bytes)    -->    (낮은주소)  0x56 | 0x34 | 0x12 (높은주소) 


- 출처 : MSDN


  • netlong

- 변환 하고자 하는 TCP/IP 네트워크 바이트 순서로 된 32비트(4바이트) 숫자를 설정한다.


Return value : 호스트 바이트 오더(인텔 프로세서일 경우 리틀 엔디안) 형태로 변환 된 값을 반환한다.


Header : Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

inet_ntoa  (0) 2015.04.10
inet_addr  (0) 2015.04.10
ntohs  (0) 2015.04.10
htonl  (0) 2015.04.10
htons  (0) 2015.04.10

ntohs

2015. 4. 10. 15:45

u_short 타입의 TCP/IP 네트워크 바이트 오더 방식(빅 엔디안)값을 호스트 바이트 오더(인텔 프로세서일 경우 리틀 엔디안)값으로 변환하여 반환한다.

* 바이트 오더란? 1개의 데이터가 1바이트 이상의 값을 가지고 있을 때 저장 되는 순서(바이트 단위)를 말한다. 

  빅 엔디안 : 낮은 주소에서 높은 주소로 저장 되는 형태의 바이트 오더

  예) 0x123456(3bytes)    -->    (낮은주소)  0x12 | 0x34 | 0x56 (높은주소)

  리틀 엔디안 : 높은 주소에서 낮은 주소로 저장되는 형태의 바이트 오더

  예) 0x123456(3bytes)    -->    (낮은주소)  0x56 | 0x34 | 0x12 (높은주소) 


- 출처 : MSDN


  • netshort

- 변환 하고자 하는 TCP/IP 네트워크 바이트 순서로 된 16비트(2바이트) 숫자를 설정한다.


Return value : 호스트 바이트 오더(인텔 프로세서일 경우 리틀 엔디안) 형태로 변환 된 값을 반환한다.


Header : Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

inet_addr  (0) 2015.04.10
ntohl  (0) 2015.04.10
htonl  (0) 2015.04.10
htons  (0) 2015.04.10
recvfrom  (0) 2015.04.10

htonl

2015. 4. 10. 15:38

u_long 타입의 호스트(로컬 시스템) 바이트 오더 데이터를 TCP/IP 네트워크 바이트 오더 방식인 빅 엔디안 값으로 변환하여 반환한다.

* 바이트 오더란? 1개의 데이터가 1바이트 이상의 값을 가지고 있을 때 저장 되는 순서(바이트 단위)를 말한다. 

  빅 엔디안 : 낮은 주소에서 높은 주소로 저장 되는 형태의 바이트 오더

  예) 0x123456(3bytes)    -->    (낮은주소)  0x12 | 0x34 | 0x56 (높은주소)

  리틀 엔디안 : 높은 주소에서 낮은 주소로 저장되는 형태의 바이트 오더

  예) 0x123456(3bytes)    -->    (낮은주소)  0x56 | 0x34 | 0x12 (높은주소) 


- 출처 : MSDN


  • hostlong

- 변환 하고자 하는 호스트(로컬 시스템) 바이트 순서로 된 32비트(4바이트) 숫자를 설정한다.


Return value : TCP/IP 네트워크 바이트 오더(빅 엔디안) 형태로 변환 된 값을 반환한다.


Header : Winsock2.h


DLL : ws2_32.dll

'Win32 API' 카테고리의 다른 글

ntohl  (0) 2015.04.10
ntohs  (0) 2015.04.10
htons  (0) 2015.04.10
recvfrom  (0) 2015.04.10
sendto  (0) 2015.04.10

htons

2015. 4. 10. 14:47

u_short 타입의 호스트(로컬 시스템) 바이트 오더 데이터를 TCP/IP 네트워크 바이트 오더 방식인 빅 엔디안 값으로 변환하여 반환한다.

* 바이트 오더란? 1개의 데이터가 1바이트 이상의 값을 가지고 있을 때 저장 되는 순서(바이트 단위)를 말한다. 

  빅 엔디안 : 낮은 주소에서 높은 주소로 저장 되는 형태의 바이트 오더

  예) 0x123456(3bytes)    -->    (낮은주소)  0x12 | 0x34 | 0x56 (높은주소)

  리틀 엔디안 : 높은 주소에서 낮은 주소로 저장되는 형태의 바이트 오더

  예) 0x123456(3bytes)    -->    (낮은주소)  0x56 | 0x34 | 0x12 (높은주소) 


- 출처 : MSDN


  • hostshort

- 변환 하고자 하는 호스트(로컬 시스템) 바이트 순서로 된 16비트(2바이트) 숫자를 설정한다.


Return value : TCP/IP 네트워크 바이트 오더(빅 엔디안) 형태로 변환 된 값을 반환한다.


Header : Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

ntohs  (0) 2015.04.10
htonl  (0) 2015.04.10
recvfrom  (0) 2015.04.10
sendto  (0) 2015.04.10
recv  (0) 2015.04.09

recvfrom

2015. 4. 10. 14:28

지정한 소켓으로 들어온 데이터를 수신한다, 또한 데이터를 송신한 상대방의 주소 정보를 저장한다.

* UDP 프로토콜을 이용한 통신에서 상대방으로부터 데이터를 받을 때 사용한다. 


- 출처 : MSDN


  • s

- 데이터를 수신할 소켓의 식별자를 설정한다.


  • buf

- 수신한 데이터를 저장 할 메모리의 주소를 설정한다.


  • len

- buf 파라메터가 가리키는 수신 데이터를 저장 할 메모리의 크기를 설정한다.


  • flags

- 수신 시 사용할 옵션 값이다, 옵션을 사용하지 않을 경우 0을 설정한다.

- 옵션 사용 시 OR 연산자를 이용하여 하나 이상의 옵션을 지정할 수 있다.


  • from

데이터를 송신한 상대방의 주소 정보를 저장할 SOCKADDR_IN 구조체 변수의 주소를 전달한다.

- 파라메터는 sockaddr의 주소를 전달해야 하지만 IPv4를 사용하는 경우 전용 구조체인 SOCKADDR_IN를 사용 하므로 강제 형변환하여 인자를 전달한다.


  • fromlen

- from 파라메터에 전달되는 데이터의 길이를 저장한 메모리의 주소를 설정한다.

- 함수 호출 후 연결된 클라이언트의 주소 정보 크기가 저장 된다.


Return value : 성공 시 수신 된 데이터 바이트 수를 반환하고, 소켓 정상 종료 시 0을 반환한다. 실패 시 SOCKET_ERROR(-1)을 반환하고, 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header : Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

htonl  (0) 2015.04.10
htons  (0) 2015.04.10
sendto  (0) 2015.04.10
recv  (0) 2015.04.09
send  (0) 2015.04.09

sendto

2015. 4. 10. 14:09

지정한 목적지로 데이터를 송신한다.

* UDP 프로토콜을 이용한 통신에서 상대방에게 데이터를 보낼 때 사용한다.


- 출처 : MSDN


  • s

- 데이터 송신에 사용할 소켓의 식별자를 설정한다.


  • buf

- 송신 하고자 하는 데이터가 들어있는 메모리의 주소를 설정한다.


  • len

- buf 파라메터가 가리키는 송신 데이터의 길이를 설정한다.


  • flags

- 송신 시 사용할 옵션 값이다, 옵션을 사용하지 않을 경우 0을 설정한다.

- 옵셥 사용 시 OR연산자를 이용하여 하나 이상의 옵션을 사용할 수 있다.


  • to

- 목적지 주소 정보가 들어있는 SOCKADDR_IN 구조체 변수의 주소를 설정한다.

- 파라메터는 sockaddr의 주소를 전달해야 하지만 IPv4를 사용하는 경우 전용 구조체인 SOCKADDR_IN에 정보를 입력한 후 강제 형변환하여 인자를 전달한다.


  • tolen

- to 파라메터에 전달되는 메모리의 크기값을 설정한다.


Return value : 성공 시 송신 된 데이터 바이트 수를 반환하고, 실패 시 SOCKET_ERROR(-1)을 반환하다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header : Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

htons  (0) 2015.04.10
recvfrom  (0) 2015.04.10
recv  (0) 2015.04.09
send  (0) 2015.04.09
closesocket  (0) 2015.03.31

recv

2015. 4. 9. 17:49

상대방과 연결되어 있는 소켓을 이용하여 상대방으로부터 데이터를 수신한다.

* TCP 프로토콜을 이용한 통신에서 상대방으로부터 데이터를 받을 때 사용한다.


- 출처 : MSDN


  • s

- 상대방과 연결된 소켓의 식별자를 설정한다.


  • buf

- 수신한 데이터를 저장 할 메모리의 주소를 설정한다.


  • len

- buf 파라메터가 가리키는 수신 데이터를 저장 할 메모리의 크기를 설정한다.


  • flags

- 수신 시 사용할 옵션 값이다, 옵션을 사용하지 않을 경우 0을 설정한다.

- 옵션 사용 시 OR연산자를 이용하여 하나 이상의 옵션을 사용할 수 있다.


Return value : 성공 시 수신 된 데이터 바이트 수를 반환하고, 소켓 정상 종료 시 0을 반환한다. 실패 시 SOCKET_ERROR(-1)을 반환하고, 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header : Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

recvfrom  (0) 2015.04.10
sendto  (0) 2015.04.10
send  (0) 2015.04.09
closesocket  (0) 2015.03.31
connect  (0) 2015.03.31

send

2015. 4. 9. 17:16

상대방과 연결되어 있는 소켓을 이용하여 상대방에게 데이터를 송신한다.

* TCP 프로토콜을 이용한 통신에서 상대방에게 데이터를 보낼 때 사용한다.


- 출처 : MSDN


  • s

- 상대방과 연결된 소켓의 식별자를 설정한다.


  • buf

- 송신 하고자 하는 데이터가 들어있는 메모리의 주소를 설정한다.


  • len

- buf 파라메터가 가리키는 송신 데이터의 길이를 설정한다.


  • flags

- 송신 시 사용할 옵션 값이다, 옵션을 사용하지 않을 경우 0을 설정한다.

- 옵션 사용 시 OR연산자를 이용하여 하나 이상의 옵션을 사용할 수 있다.


Return value : 성공 시 송신 된 데이터 바이트 수를 반환하고, 실패 시 SOCKET_ERROR(-1)을 반환하다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header : Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

sendto  (0) 2015.04.10
recv  (0) 2015.04.09
closesocket  (0) 2015.03.31
connect  (0) 2015.03.31
accept  (0) 2015.03.31

closesocket

2015. 3. 31. 19:45

지정한 소켓을 종료한다.


- 출처 : MSDN


  • s

- 종료할 소켓의 식별자를 설정한다.


Return value : 성공 시 0을 반환하고, 실패 시 SOCKET_ERROR(-1)를 반환한다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header :  Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

recv  (0) 2015.04.09
send  (0) 2015.04.09
connect  (0) 2015.03.31
accept  (0) 2015.03.31
listen  (0) 2015.03.31

connect

2015. 3. 31. 19:34

서버의 리스닝 소켓으로 요청을 보내 서버와 통신을 위한 연결을 수립한다.


- 출처 : MSDN


  • s

- 서버와 통신할 소켓의 식별자를 설정한다.


  • name

- 통신할 서버의 주소정보를 저장한 SOCKADDR_IN 구조체 변수의 주소를 전달한다.

- 파라메터는 sockaddr의 주소를 전달해야 하지만 IPv4를 사용하는 경우 전용 구조체인 SOCKADDR_IN를 사용 하므로 강제 형변환하여 인자를 전달한다.


  • namelen

- 두 번째 name 파라메터에 전달되는 데이터의 길이를 설정한다.


Return value :  성공 시 0을 반환하고, 실패 시 SOCKET_ERROR(-1)를 반환한다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header :  Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

send  (0) 2015.04.09
closesocket  (0) 2015.03.31
accept  (0) 2015.03.31
listen  (0) 2015.03.31
bind  (0) 2015.03.31

accept

2015. 3. 31. 19:11

리스닝 소켓으로 들어오는 클라이언트의 요청을 허용하여 클라이언트와 통신을 위한 새로운 소켓을 생성한다.


- 출처 : MSDN


  • s

- 클라이언트의 요청이 들어오는 리스닝 소켓의 식별자를 설정한다.


  • addr

- 요청한 클라이언트의 주소 정보를 저장할 SOCKADDR_IN 구조체 변수의 주소를 전달한다.

- 파라메터는 sockaddr의 주소를 전달해야 하지만 IPv4를 사용하는 경우 전용 구조체인 SOCKADDR_IN를 사용 하므로 강제 형변환하여 인자를 전달한다.


  • addrlen

- 두 번째 addr 파라메터에 전달되는 데이터의 길이를 저장한 메모리의 주소를 설정한다.

- 함수 호출 후 연결된 클라이언트의 주소 정보 크기가 저장 된다.


Return value : 성공 시 클라이언트와 통신을 위한 새로운 소켓이 생성되어 클라이언트와 연결이 되고 새로 생성된 소켓의 식별자가 반환된다, 실패 시 INVALID_SOCKET이 반환된다. 실패에 대한 자세한 정보는 WSAGetLastError 함수를 참고한다.


Header : Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

closesocket  (0) 2015.03.31
connect  (0) 2015.03.31
listen  (0) 2015.03.31
bind  (0) 2015.03.31
socket  (0) 2015.03.31

listen

2015. 3. 31. 18:23

지정한 소켓을 클라이언트의 요청을 수신할 수 있는 리스닝 상태로 만들어 준다.


- 출처 : MSDN


  • s

- 리스닝 상태로 전환할 소켓의 식별자를 설정한다.

 

  • backlog

- 연결 보류중인 클라이언트의 요청을 위한 대기열 큐의 최대 길이를 설정한다.

- 일반적으로 운영체제에서 제공하는 최대 크기 값인 SOMAXCONN을 설정한다.


Return value : 성공 시 0을 반환하고, 실패 시 SOCKET_ERROR(-1)를 반환한다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header : Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

connect  (0) 2015.03.31
accept  (0) 2015.03.31
bind  (0) 2015.03.31
socket  (0) 2015.03.31
LeaveCriticalSection  (0) 2015.03.25

bind

2015. 3. 31. 17:23

소켓에 로컬 주소를 연결한다.


- 출처 : MSDN


  • s

- 주소 정보를 연결할 소켓의 식별자를 설정한다.


  • name

- 연결할 주소 정보가 들어있는 SOCKADDR_IN 구조체 변수의 주소를 설정한다.

- 파라메터는 sockaddr의 주소를 전달해야 하지만 IPv4를 사용하는 경우 전용 구조체인 SOCKADDR_IN에 정보를 입력한 후 강제 형변환하여 인자를 전달한다.


  • namelen

- 두 번째 name 파라메터에 전달되는 데이터의 길이를 설정한다.


Return value : 성공 시 0을 반환하고, 실패 시 SOCKET_ERROR(-1)를 반환한다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header :  Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

accept  (0) 2015.03.31
listen  (0) 2015.03.31
socket  (0) 2015.03.31
LeaveCriticalSection  (0) 2015.03.25
EnterCriticalSection  (0) 2015.03.25

socket

2015. 3. 31. 16:41

소켓을 생성한다.


- 출처 : MSDN

  • af

- 주소 체계를 설정한다.

- 일반적으로 IPv4 프로토콜을 사용하는 경우 주소 체계는 AF_INET을 설정한다.


  • type

- 생성할 소켓의 타입을 설정한다.

- AF_INET에서 TCP용 소켓을 생성할 시에는 SOCK_STREAM을 설정한다.

- AF_INET에서 UDP용 소켓을 생성할 시에는 SOCK_DGRAM을 설정한다.


  • protocol

- 프로토콜을 설정한다.

- 0의 값을 설정하면 타입에 맞는 프로토콜이 자동 선택된다.

- TCP 프로토콜을 사용할 때 IPPROTO_TCP를 설정한다.(SOCK_STREAM 타입일 때 0 설정 시 TCP 프로토콜이 자동 선택된다.)

- UDP 프로토콜을 사용할 때 IPPROTO_UDP를 설정한다.(SOCK_DGRAM 타입일 때 0 설정 시 UDP 프로토콜이 자동 선택된다.


Return value : 성공 시 생성된 소켓의 식별자(디스크립터)를 반환하고, 실패 시 INVALID_SOCKET을 반환한다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header : Winsock2.h


DLL : Ws2_32.dll


'Win32 API' 카테고리의 다른 글

listen  (0) 2015.03.31
bind  (0) 2015.03.31
LeaveCriticalSection  (0) 2015.03.25
EnterCriticalSection  (0) 2015.03.25
InitializeCriticalSectionAndSpinCount  (0) 2015.03.25

+ Recent posts