2009-12-01 10 views
1

나는 ad-hoc wlan 네트워크를 통해 연결된 2 개의 windows PC를 가지고 있습니다.
이 기존 연결을 사용하면이 PC의 소켓을 통해 통신 할 수 있습니까?
하나의 PC에서 서버 소켓을 열고 다른 PC를 클라이언트로 만들고 다른 PC에 연결 한 다음이 연결을 통해 데이터를 보내고받을 수 있습니까?
특정 API가 필요하거나 그냥 java.net.Socketjava.net.ServerSocket을 사용할 수 있습니까?WLAN을 통한 Java 소켓?

답변

5

물론 가능합니다. WLAN 연결을 통한 IP 네트워크가 있으며 TCP 연결을 설정하는 것을 방해하는 것은 없습니다.

는 지금까지 소켓에 관한 한이 유선 (이더넷) 연결에 차이가 없습니다, 차이는 (서버) 소켓을 사용할 수 있습니다 물론 Data-Link layer

3

에서 끝납니다. 소켓은 IP 프로토콜 (OSI 계층 3)의 최상위에서 작동하는 TCP 프로토콜 (OSI 계층 4)의 개념으로 자체 운영되는 WLAN 또는 이더넷 (OSI 계층 2)의 최상위에서 작동하며, (WLAN 용 전파, 이더넷 용 이더넷 케이블).

OSI 계층의 구현은 대체 가능합니다 (또는 더 나은 : 대체 가능해야 함). 따라서 레이어 3 아래로 가지 않는 한 WLAN, 이더넷 또는 다른 것을 사용하는 것은 중요하지 않습니다 (어쨌든 Java에서는 불가능 함).

내가 OSI 레이어를 이동 나는 그 레이어 7 애플리케이션 계층에서이 HTTP를 가지고 참조 링크에 대한 자세한 내용은 EFraim에

+0

감사를 Wikipedia article을 살펴보고 당신, 그것은 요청/응답입니다 프로토콜 아닌가요? 이제는 더 높은 수준의 푸시 프로토콜이 존재합니까? 아니면 현재 저수준 소켓과 함께 살고 있습니까? –

+0

Java 자체는 레벨 7 프로토콜 만 지원합니다. HTTP는 가장 일반적인 것일 뿐이며 Java에서 직접 지원됩니다. Java는 RMI, HTTP, FTP 및 JMX를 지원합니다 (불완전 할 수 있음). XMPP 또는 Google 프로토콜 버퍼와 같은 직렬화 프레임 워크와 같은 다른 프로토콜을 지원하는 API가 있습니다. 좋은 출발점은 Apache MINA 또는 JBoss Netty입니다. 이것들은 네트워킹 프레임 워크이며 XMPP 서버와 같은 Vysper와 같은 몇 가지 프로젝트가 있습니다. – Hardcoded