소켓을 만들어보자
1. 소켓 생성
- 소켓을 이용하여 통신을 하기 위한 요건은 양단이 같은 프로토콜을 사용하는 것이다. socket() 함수는 사용자가 요청한 프로토콜을 이용하여 통신을 할 수 있도록 내부적으로 리소스를 할당하고 이를 접근할 수 있는 일종의 핸들값을 리턴한다. 이 값을 소켓 디스크립터라고 부르며, 각종 소켓 함수를 호출 할 때 인자로 전달하여 사용한다.
2. socket()
- 구조
SOCKET socket ( int af, int type, int protocol )
: af
주소 체계 결졍. (Address Family)
: type
소켓의 타입 결정
- 성공할 경우 0리턴, 아니면 에러코드 리턴
- 타입 : SOCK_STREAM - TCP, 신뢰성 있고 연결지향적, 대신 느려
SOCK_DGRAM - UDP, 빠르고 비접속적, 대신 신뢰성이없어
- 사용하는 프로토콜에 맞춰서 설정하자, TCP or UDP
- TCP/UDP를 쓸 거기 때문에 af는 AF_INET으로 통일, AF_UNSPEC을 제외하고 프로토콜은 0
- 함수형태
: SOCKET tcp_sock = socket(AF_INET, SOCK_STREAM, 0)
: SOCKET udp_sock = socket(AF_INET, SOCK_DGRAM, 0)
3. 예제
#include <Winsock2.h>
int main()
{
// 윈속 초기화
WSADATA wsa;
if(WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
return -1;
printf("윈속초기화 성공~");
SOCKET tcp_sock = socket(AF_INET, SOCK_STREAM, 0); // 소켓 tcp연결
if (tcp_sock == INVALID_SOCKET) printf("연결안됐어잉");
// 윈속종료
WSACleanup();
return 0;
}
'Web, Network Programming > Socket' 카테고리의 다른 글
TCP 서버/클라이언트 (0) | 2014.06.16 |
---|---|
도메인 네임 서버 (0) | 2014.06.16 |
바이트 정렬 (0) | 2014.05.29 |
WS2_32.DLL (0) | 2014.05.29 |
initSocketLayer (0) | 2014.05.29 |