Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- c++
- backend
- Shellcode
- 리눅스
- hackthissite
- 러닝 스칼라
- BOF
- 딥러닝
- 경제
- c
- 웹해킹
- Javascript
- hackerschool
- hacking
- Web
- Linux
- php
- 인공지능
- 러닝스칼라
- 파이썬
- 챗GPT
- Scala
- webhacking
- deep learning
- BOF 원정대
- ChatGPT
- mysql
- flask
- 백엔드
- Python
Archives
- Today
- Total
jam 블로그
[소켓프로그래밍] 리눅스 소켓프로그래밍 기초 본문
728x90
소켓프로그래밍의 흐름입니다.
서버 프로그램 같은 경우
socket -> bind -> listen -> accept -> write(or read) -> close
클라이언트 프로그램 같은 경우
socket -> connect -> read(or write) -> close
서버와 클라이언트가 통신 하는 방식은 다음과 같습니다.
1. 먼저 서버와 클라이언트는 각각 자신의 socket을 만듭니다.
2. 그 다음 서버는 bind함수 즉, 어떤 주소, 어떤 포트를 사용할 것인지 소켓의 종류는 무엇인지를 결정합니다.
3. 그리고 서버의 listen으로 접속을 기다립니다.
4. 이제 클라이언트는 connect 함수로 서버의 어떤 주소, 어떤 포트로 연결을 합니다.
5. 그리고 서버는 accept 함수에서 connect 되었다는 것을 감지합니다.
6. 서버에서 write 함수로 버퍼에 쓴 글을 클라이언트로 보냅니다.
7. 클라이언트는 read 함수로 글을 받고 사용자에게 보여줍니다.
8. 그리도 둘 다 close 됩니다.
다음은 서버 소스와 클라이언트 소스입니다.
[소스 1] 서버 프로그램
'개발 및 관련 자료 > C' 카테고리의 다른 글
[C] 12. 포인터의 이해 (0) | 2013.05.12 |
---|---|
[C] 11. 1차원 배열 (0) | 2013.05.12 |
[C/C++] visual studio 2010 에서 계속하려면 아무 키나 누르십시오 가 뜨지 않을 경우 (0) | 2011.12.10 |
[MFC] MFC 9.0 계층도 (0) | 2009.12.08 |
[MFC] Visual Studio 2008 개발환경 설정 (0) | 2009.12.06 |
Comments