2024/05/08 2

[Networking] Socket Programming (소켓 프로그래밍) - 분산 시스템 구현

Distributed System (분산 시스템) 은 소켓 프로그래밍을 사용해 서로 통신하는 여러 노드로 구성된 네트워크를 만들 수 있다. 중앙 서버로 데이터를 전송하는 여러 클라이언트가 있고 서버가 이 데이터를 처리해 응답을 보내는 간단한 예를 살펴보자. Server Code: 이 서버는 여러 연결을 동시에 관리하기 위해 threading을 사용해 여러 클라이언트를 처리한다. 각 클라이언트 연결은 별도의 thread에서 처리된다. '1024'는 한 번에 수신 가능한 데이터의 최대 크기(buffer size)를 의미하고 단위는 Byte다. import socketimport threadingdef client_handler(connection, address): print(f"Connected to..

[Networking] Host vs Port

네트워킹 및 소켓 프로그래밍의 맥락에서 "Host"라는 용어는 일반적으로 네트워크 주소를 통해 액세스할 수 있는 네트워크 상의 모든 컴퓨터 또는 장치를 의미한다. 다음은 "Host"와 "Port"의 개념에 대해 좀 더 자세한 설명이다. 소켓 프로그래밍에서 Host와 Port를 지정하면 네트워크 endpoint를 정의하는 것이다. Port 번호는 Host와 관련이 있으며, 해당 Host의 어떤 프로그램이나 서비스가 특정 Port로 들어오는 네트워크 데이터를 처리해야 하는지를 지정한다. Host: Host는 네트워크에서 IP 주소로 식별할 수 있으며, 이 주소는 192.168.1.1과 같은 IPv4 주소이거나 2001:0db8:85a3:0000:0000:8a2e:0370:7334와 같은 IPv6 주소일 수 ..