SOCKET3 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 동기 처리 client - server 구현 (1)알아가기전 알아야할 것들동기적 처리가 일어나는 부분 socket library ( ex _ winsock2 )client - server 구현 동기적 처리가 일어나는 부분CLIENTconnect() 과정 : server와 통신연결을 위해 응답이 올때까지 기다린다.send() 과정 : 서버에서 해당 메시지가 제대로 보내는지 확인 과정을 기다린다.recv() 과정 : 서버에서 송신한 데이터가 오는 것을 기다리고, 데이터의 결과를 확인한다.SERVERaccept() 과정 : client와의 연결을 위해 새로운 socket을 생성할 때까지를 기다린다.Listen() 과정까지는 client연결을 기다리는 중이고, accept단계에서 연결작업이 진행된다send() 과정 : 데.. 2024. 6. 2. Socket의 기본 정리 ( feat, Blocking / Non-Blocking ) 소켓소켓의 경우 파일 핸들작업과 유사파일 핸들 : 파일의 읽고/쓰기를 조작하기 위한 컨트롤소켓 핸들 : 네트워크 연결을 조작하기 위한 컨트롤소켓의 경우 비동기 처리가 주로 사용됨비동기처리의 필요성동기처리일경우, 해당 소켓의 통신과정 동안 사용자 입장에서는 Main 함수가 정지되어있음 (다른 일을 처리하지 못해 멈춰있는것처럼 보임)비동기 방식논블로킹 소켓Overlapped I/Oepoll (linux)I/O Completion Port (IOCP / Window) Blocking 통신 구조클라이언트sock_handle = socket(TCP)sock_handle.bind(any_port)sock_handle.connect(server_ip:port)sock_handle.send()sock_handle.c.. 2024. 5. 30. 이전 1 다음