일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- binary search
- Trie
- String
- Hash
- 다익스트라
- union find
- 스토어드 프로시저
- SQL
- Dijkstra
- 그래프
- two pointer
- 이진탐색
- Brute Force
- MYSQL
- Two Points
- Stored Procedure
- DP
Archives
- Today
- Total
codingfarm
4. 소켓 네트워크 프로그램 개발 - 6. 연결 요청(connect 함수) 본문
학습 목표
- connect 함수의 사용법을 숙지한다
- 클라이언트는 connect 함수를 이용해서 연결 요청을 한다.
- 연결 소켓을 반환하는 accept 함수와는 달리, connect 함수는 연결 성공 여부만 반환한다
- server : 듣기 소켓과 연결 소켓이 분리
- client : 구분 없음, socket 함수로 생성된 소켓 하나로 연결 및 통신을 모두 관리한다.
connect 함수의 원형
1
|
int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen);
|
cs |
매개변수
- sockfd : socket 함수로 생성된 소켓 지정 번호
- serv_addr : 연결할 서버의 ip 주소와 포트 등의 정보를 담아온다
- addrlen : server_addr의 크기
- 반환값
- 0 : 성공
- -1 실패
함수의 사용법 자체는 accept 함수와 비슷하다. 다만 별도의 소켓을 추가로 생성하지 않는다.
connect 함수의 사용 예
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
if ((server_sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
perror("error : ");
exit(0);
}
serveraddr.sin_family = AF_INET;
serveraddr.sin_addr.s_addr = inet_addr("127.0.0.1"); // 자기 자신에게 보낸다
serveraddr.sin_port = htons(3500);
client_len = sizeof(serveraddr);
if(connect(serer_sockfd, (struct sockaddr *) &serveraddr, client_len) == -1) {
perror("connect error : ");
exit(0);
}
|
cs |
'TCP IP 소켓 프로그래밍' 카테고리의 다른 글
4. 소켓 네트워크 프로그램 개발 - 7. 데이터 읽고 쓰기(read/write 함수) (0) | 2021.05.11 |
---|---|
네트워크 바이트 순서(Network byte order) (0) | 2021.05.11 |
4. 소켓 네트워크 프로그램 개발 - 5. 연결 대기(accept 함수) (0) | 2021.05.10 |
4. 소켓 네트워크 프로그램 개발 - 4. 수신 대기열 생성(listen 함수) (0) | 2021.05.10 |
4. 소켓 네트워크 프로그램 개발 - 3. 소켓 설정(bind 함수) (0) | 2021.05.10 |
Comments