2012-11-25 3 views
1

소켓을 사용하여 java로 애플리케이션을 만들었습니다. 내 컴퓨터가 서버이고 내 휴대 전화 (안드로이드)가 클라이언트입니다. 내가하려는 것은 전화에서 클라이언트 PC로 문자열을 전달하는 것입니다.라우터에 포워드 포트가없는 Java 프로그램

라우터를 구성하고 사용할 포트를 열면 모든 것이 잘 작동합니다. costumer가 내 응용 프로그램을 설치할 때마다 라우터에서 포트를 열어야합니다.

내 서버 코드를 실행할 원격 서버를 사용하려고 생각했습니다. 하지만 그렇게 할 수있는 서버를 찾지 못했습니다. 내 PC를 모든 costumers를위한 서버로 만들고 싶지 않습니다.

모든 채팅 회사는 오픈 포트없이 어떻게합니까?

+1

왜 포트를 열지 않는다고 가정합니까? 두 개의 (또는 그 이상의) 클라이언트간에 이동 서버 역할을하는 중앙 서버가 있습니다. – Joe

+0

그래서 중앙 서버처럼 작동 할 호스트 서버를 원한다면. 어디서 그런 걸 찾을 수 있니? – user1834345

+0

사용하는 호스팅 업체의 질문은 SO에 대한 주제와 관련이 없습니다. – Joe

답변

-1

아마도 라우터 방화벽 때문에 포트를 열어야했습니다. :). 이미 9090 포트라고 말하면 모든 클라이언트 앱 (안드로이드 폰)이 연결할 수 있습니다 :). 물론 누군가가 자신의 PC에 서버를 설치하고 싶다면 일부 포트를 앞으로 돌릴 수 있고 일부 방화벽을 비활성화 할 수 있습니다. 특수 requriements 조회 VPS의 서버를 원한다면. :)

+0

좋아, 그래서 내 PC가 서버가되고 싶지 않아. 내 서버 코드를 실행할 호스트 서버를 제공 할 수 있습니까? – user1834345

+0

가상 사설 서버 공급자를 찾으십시오. :) 이것이 필요한 것입니다. – fatfredyy

2

당신은 UPnP를 조사해야합니다. 이것은/all/torrent 클라이언트가 포워딩 포트없이 외부 연결을 허용하기 위해 사용하는 포트 번호입니다. 채팅 클라이언트가하는 일과는 다른 시나리오입니다. 그들은 해킹 (예 : 외부 서버가있는 UDP)을 사용하는 방화벽 구멍 펀칭 http://www.h-online.com/security/features/How-Skype-Co-get-round-firewalls-747197.html UDP 구멍 펀칭에 대한 자세한 내용은이 링크를 참조하십시오.

UPnP 사용에 대해서는 http://www.codeproject.com/Articles/13285/Using-UPnP-for-Programmatic-Port-Forwardings-and-N도 참조하십시오. 하지만 이것은 C++에서 쓰이지 만 여러분이 이해할 것이라고 생각합니다.

편집 : http://4thline.org/projects/cling/ 발견했습니다. 나는 그것이 당신을 도울 수 있다고 생각합니다.

+0

누구나 uPNP를 지원한다고 가정 할 수는 없습니다. – Joe

관련 문제