티스토리 뷰
socket을 사용해서 네트워크 프로그램을 만들려면 socket을 만들어야 한다. 먼저 Linux에서 사용되는 BSD socket(이하 socket) 을 만드는 방법을 알아보자.
socket을 만드는 함수는 socket() 함수이다.
int socket(int domain, int type, int protocol);
domain
소켓을 어떤 영역에서 사용할 것인지에 대한 정보이다.
AF_UNIX |
시스템 내부에서 프로세스간 통신할 때 사용한다. |
AF_INET |
IPv4를 사용해서 인터넷 영역에서 통신할 때 사용한다. |
AF_IPX |
Novell Internet 프로토콜이지만 이제 사용하지 않는다. |
AF_INET6 |
IPv6를 사용해서 인터넷 영역에서 통신할 때 사용한다. |
AF_X25 |
아마추어 라디오용 프로토콜이다. |
type
통신에 사용할 프로토콜 유형을 정하기 위한 인자다.
SOCK_STREAM |
연결지향 TCP/IP 통신 프로토콜 |
SOCK_DGRAM |
데이터그램 방식의 UDP/IP 통신 프로토콜 |
SOCK_RAW |
TCP/IP를 직접 다루게 하는 프로토콜 |
protocol
통신에 사용할 프로토콜을 정하기 위한 인자다.
IPPROTO_TCP |
TCP프로토콜. AF_INET, SOCK_STREAM과 함께 사용한다. |
IPPROTO_UDP |
UDP프로토콜. AF_INET, SOCK_DGRAM과 함께 사용한다. |
함수의 반환값은 생성된 socket의 지정번호로 Linux에서는 fd, Windows에서는 socket지정번호가 반환된다. 둘 다 int로 받을 수 있기 때문에 int변수에 저장해서 사용하면 된다.
인터넷 영역에서 TCP/IP 프로토콜을 사용해서 통신을 하기 위한 socket을 만드는 코드는 다음과 같다.
sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
'Programming > Socket' 카테고리의 다른 글
socket으로 네트워크 엔진 만들기 (1) - Packet class 정의 (0) | 2017.07.11 |
---|---|
socket : 기본 서버 프로그램 제작 (0) | 2017.02.02 |
socket : socket이란? (0) | 2017.01.30 |
socket : TCP/IP란? (0) | 2017.01.30 |
윈속(Winsock)으로 채팅 프로그램을 만들어보자 (0) | 2016.08.13 |
- Total
- Today
- Yesterday
- JSP
- SwiftUI
- SOCKET
- mongoDB
- Spring
- OS
- 자료구조
- winsock
- rxswift
- Cocos2d-x
- C++
- 국내여행
- database
- 운영체제
- swift
- Java
- Git
- machine learing
- 데이터베이스
- SHADER
- scala
- C/C++
- game
- 알고리즘
- C
- ue4
- ios
- DesignPattern
- 수학
- 드라마
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |