2016-11-05 4 views
0

자바를 사용하여 TCP를 통해 파일을 보내는 간단한 프로그램을 작성 중입니다. 컴퓨터간에 연결할 수 없다는 문제가 있습니다. 라우터와 로컬 IP 주소를 사용하여 응용 프로그램을 테스트하고 있습니다. Java - TCP 연결

나는하여 연결을 시작합니다

sendSocket = new Socket(sendIp, port); 

을 나는하여 다음 PC에 연결받을하려고 : 포트는 12222입니다

servsock = new ServerSocket(port); 
recieveSocket = servsock.accept(); 

, sendIp는 169.254.5.47입니다 (두 번째 컴퓨터를 그 수신함)

및 myIP는 192.168.0.52 (컴퓨터로 전송)

내가 뭘 잘못하고있는거야?
나는 항상 같은 포트를 사용하고, TCPView에서 자바 애플리케이션이 그 포트를 사용하는 것을 볼 수있다. 잘못된 IP 또는 방화벽 블록을 어떻게 든 할당 할 수 있습니다.

안부와 감사,

+0

그들은 동일한 네트워크 권리의 일부로 보이지 않습니까? –

+0

보낸 사람과 대상의 IP가 동일한 LAN에 없으므로 응용 프로그램을 테스트하기 전에 먼저 연결을 확인하십시오. Telnet은이를 테스트하는 데 유용한 도구입니다. –

답변

0

이 Windows 네트워크의 경우 크리스는 IP 169.254.5.47는 호스트가 DHCP에서 유효한 IP 주소를 획득하지 않았 음을 의미합니다. 표준 로컬 네트워크에서 두 주소는 같은 클래스 C 범위 (192.168.0. *)에 있어야합니다.

먼저 네트워크에서이 물리적 인 문제를 해결하고 ping을 사용하여 테스트해야합니다 (각 호스트는 다른 호스트에 대해 ping을 수행하고 응답을 볼 수 있어야합니다).

+0

당신 말이 맞아요. 라우터에서 IP 주소를 확인하고 연결할 수있었습니다. 문제는 두 번째 컴퓨터에서 Java 응용 프로그램이 다른 IP를 반환한다는 것입니다. 나는 그것을 위해 사용한다 : myIp = InetAddress.getLocalHost(). getHostAddress(); 고칠 수 있습니까? 감사합니다. Chris –