0

java로 작성된 매우 간단한 클라이언트 서버 코드가 있습니다. 서버는 일부 포트에서 수신 대기하고 클라이언트는 서버 포트에 연결하고 연결이 설정된 후 클라이언트 IP는 서버 콘솔에 표시됩니다. 이 프로그램은 인트라넷에서 잘 작동하지만 클라이언트와 서버가 인터넷에 연결되어 있으면 내 서버가이를 감지 할 수 없습니다. 클라이언트와 서버에 방화벽이 설치되어 있지 않으며 포트 포워딩이 서버에서 수행됩니다 (canyouseeme.org).인터넷에있는 서버에 연결할 수 없습니다.

서버

내가 미리 internet.Thanks에 클라이언트를 감지 할 수 없습니다 나는 왜 저를 알아내는 데 도움이 바랍니다 (그들은 직접 모뎀에 연결되어있는) 다른 세 대의 컴퓨터와 함께 모뎀에 직접 연결된다.

Client code: 
------------ 

String remoteIP = //remote ip 
int port =1888; 

try{ 
new Socket(remoteIp,port); 
}catch(Exception e){ 
System.out.println(e.message()); 
} 

Server code 
----------- 
ServerSocket serversocket = new ServerSocket(port); 
Socket socket = serverSocket.accept(); 
displayIp(socket); 
+2

'매우 간단한 클라이언트 서버 코드'코드를 게시하십시오. –

+0

코드가 추가되었습니다. – hnm

+0

'클라이언트와 서버가 인터넷에 연결되어 있는데 서버가이를 감지 할 수 없다'는 것은 무엇을 의미합니까? 클라이언트가 처음에 서버에 연결할 수 있습니까? –

답변

0

http://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html

가 어떤 프로토콜을 사용합니까 참조 클라이언트 측에서 프록시 구성을 확인?

+0

TCP 프로토콜 (java 소켓 사용)을 사용합니다. 하지만 문제는 내 시스템의 서버 만 클라이언트를 감지하지 못하는 것입니다. 모뎀에 직접 연결되어있는 사무실 시스템에서 서버를 실행하면 클라이언트를 감지 할 수 있습니다. 서버에 문제가 있어야합니다. 하지만 canyouseeme.org에서 내 서버를 볼 수 있습니다 – hnm

+0

서버가 연결된 NAT가있는 WAN 라우터에서도 코드를 포트 80으로 변경하십시오. canyouseeme.org의 서버를 포트 80에서 다시 확인하십시오. 그런 다음 클라이언트에서 브라우저를 열고 예. http : //www.google.com을 방문한 다음 goto http : // 를 입력하십시오. * * 작동해야합니다. – PeterMmm

관련 문제