Java 소켓을 사용하여 인터넷 접속 없이 LAN 채팅 애플리케이션
사용자 A는 프로그램을 열고, 이름과 아바타를 선택하고, 로그인을 클릭하고, LAN에 착륙하기 시작합니다. 사용자 A 로그인 프로그램은 UDP 서비스 터미널(포트 번호) 9156 내부에서 두 개의 스레드를 동시에 시작합니다. 다른 사용자가 로그인할 때까지 기다리는 데 사용되며, 내부의 다른 스레드가 TCP 서비스 측(포트 번호 9155)을 시작하고, 다른 사용자의 소켓 연결을 기다리는 데 사용됩니다. 동시에 사용자 A는 UDP 브로드캐스트를 사용하여 UDP 패키지를 출력합니다. 이 UDP 패키지에는 사용자 이름, IP 주소 등의 정보가 포함되어 있으며, UDP 패키지는 이 프로그램을 포함하여 동일한 근거리 통신망 내에서 동일한 포트를 사용하는 모든 UDP 서비스 측 프로그램으로 전송됩니다.
다른 온라인 사용자가 있는 경우 각 온라인 사용자 프로그램 UDP 서비스 측은 이 UDP 패키지를 수신한 다음 사용자 정보를 가져와 사용자 A를 온라인 목록에 추가합니다. UDP 패키지에는 사용자 A IP 주소가 포함되어 있으므로 각 사용자 A는 온라인 목록에 추가됩니다. 온라인 사용자는 사용자 A의 IP 주소를 사용하여 사용자 A에게 응답을 보냅니다.
사용자 A는 잠시 기다리면 모든 온라인 사용자로부터 응답을 받게 되며 모든 온라인 사용자는 자신의 온라인 목록에 사용자 A를 추가하게 됩니다.
채팅 방법은 두 장치가 서버 역할을 하는 일반적인 멀티 스레드 방식이므로 P2P 앱이라고 말할 수 있습니다.