본문 바로가기

Server3

Many Client Connection (feat, thread / socket / select) client - server 구현 (3)알아야 할 것들Threadmutexchrono ( server 통신 timer로서 사용) Thread 기본 이론하나의 프로세스에서 여러일을 병렬처럼 사용하고자 사용자원 공유 ( Heap 영역 / 전역변수 / 주소공간 / [시그널/ 파일] 핸들러 등등)자원을 공유하기에 같은 곳 동시에 접근하지 않도록 적절한 관리가 필요비동기처리를 할 때에 주로 사용됨 MutexThread에서 자원을 공유하는 부분에 동시에 접근하는 것을 막기 위해 사용이번 예제에서는 출력하는 부분이 일정한 처리가 되지 않아 제대로 출력되지 않는 것에 있어서 mutex를 사용너무 큰 범위의 mutex, 또는 너무 작은 범위의 mutex 사용은 관리의 힘듬을 야기할 수 있음mutex, semaphore,.. 2024. 6. 2.
Socket과 select client - server 구현 (1)알아야할 것들ioctlsocket() : 비동기처리getsockopt() : 소켓 확인select() : 이벤트 처리 부분동기적 처리가 일어나는 부분 ioctlsocket() 함수소켓핸들에 명령을 주어 설정을 하는 함수명령어 목록FIONBIO : 소켓의 동기화/비동기화를 설정FIONREAD : 소켓의 읽을 수 있는 데이터 양 검색SIOCATMARK : 소켓의  urgent 데이터가 있는지 여부 확인SIO_KEEPALIVE_VALS : TCP keep-alive 시간 설정을 변경SIO_GET_EXTENSION_FUNCTION_POINTER : 확장 함수 포인터를 가져옴 (*사용자 명령 사용 가능) getsockopt() 함수소켓의 상태 확인 (연결 중/ 연결 종료/ .. 2024. 6. 2.
Socket 동기 처리 client - server 구현 (1)알아가기전 알아야할 것들동기적 처리가 일어나는 부분 socket library ( ex _ winsock2 )client - server 구현 동기적 처리가 일어나는 부분CLIENTconnect() 과정 : server와 통신연결을 위해 응답이 올때까지 기다린다.send() 과정 : 서버에서 해당 메시지가 제대로 보내는지 확인 과정을 기다린다.recv() 과정 : 서버에서 송신한 데이터가 오는 것을 기다리고, 데이터의 결과를 확인한다.SERVERaccept() 과정 : client와의 연결을 위해 새로운 socket을 생성할 때까지를 기다린다.Listen() 과정까지는 client연결을 기다리는 중이고, accept단계에서 연결작업이 진행된다send() 과정 : 데.. 2024. 6. 2.