2011-01-09 8 views
1

비디오 게임의 서버와 같습니다. 응용 프로그램을 실행하면 IP 및 포트가있는 컴퓨터에 서버가 설정됩니다.자바로 인터넷을 통한 통신

예를 들어 하나의 호스트 응용 프로그램에서 IP와 포트가있는 것을 설정하고 인터넷에 액세스 할 수있는 다른 컴퓨터에서 IP 및 포트를 입력 할 수있는 응용 프로그램을 만들려면 어떻게해야합니까? 호스트와 통신 할 수 있습니까? 간단히 말해서 boolean 또는 String을 보내는 것과 같습니다.

수정해야 할 보안 문제가 있습니까?

답변

1

질문의 개념을 파악한 것 같습니다. 두 대의 컴퓨터가 인터넷을 통해 연결되기를 원하십니까? 그렇다면 컴퓨터간에 연결을하는 "소켓"이라는 것을 사용해야 할 것입니다. 서버에 관해서는 우선, 클라이언트는 항상 서버에 어떤 IP (직접 IP 또는 DNS)를 알고 있어야하며 클라이언트를 서버에 연결할 수 있어야합니다. java 페이지의 소켓 튜토리얼은 http://download.oracle.com/javase/tutorial/networking/sockets입니다. 보안 문제에 관해서는 서버가 클라이언트에서 오는 모든 것을 처리 할 수 ​​있는지 확인해야합니다. 실제로 모든 것을 의미합니다. 즉, 수신해야하는 모든 유형의 데이터를 수락하고 그렇지 않은 모든 것을 거부합니다 (휴지통 당 말하다). 그 점을 염두에두면 아무 문제가 없습니다 (물론 서버에는 소켓을 제어하기위한 방화벽이 있어야하지만 이는 사용자의 책임이 아닙니다).

+0

감사합니다. 매우 도움이됩니다. –

0

일반적으로 원하는 것은 소켓입니다. 소켓을 사용하면 TCP 또는 UDP를 통해 엔드 포인트로 바이트를 보낼 수 있습니다. 이것은 매우 낮은 수준이지만 자신의 응용 프로그램 프로토콜을 설계해야하기 때문에 다소 까다 롭습니다. 좀 더 추상화 된 것을 사용하고 싶을지도 모른다.

Java 소켓은 정수를 문자열로 인코딩하여 줄 단위로 전송할 수 있도록 스트림 인터페이스를 제공합니다. 그렇지 않으면 DataOutputStream을 사용하여 랩핑하는 것과 같은 더 효율적이고 더 효율적인 작업을 수행 할 수 있습니다.

0

다음 문제를 처리하면 보안이 향상 될 수 있습니다.

  1. 라우터가있는 경우 라우팅 할 다른 포트를 설정하십시오.

    예 : 포트 6001에서 서버를 실행하는 경우 가상 포트 9001을 공개합니다.이 포트는 공개 될 수 있습니다.

  2. DDOS

  3. IP 제한 - 모든 사용자가 시스템에 액세스 할 수 없음!

  4. 라우터 방화벽을 설정하면 대부분의 문제가 해결됩니다.

관련 문제