2012-07-06 4 views
1

안녕하세요 저는 작은 UDP 서버 프로그램을 작성했습니다. 서버에 연결되어있는 클라이언트의 IP 및 포트 번호를 표시하는 방법은Java : 클라이언트 및 IP 주소 표시

System.out.println("Listening Port: " + serverSocket.getLocalPort()); 
System.out.println("IP: " + myIp.getHostAddress()); 

있습니까 : 나는 IP는 다음 코드를 쉽게 호스트를 표시하는 코드를 알아? 당신이 당신의 UDP DatagramPacket를받을 때 IP 주소의 문자열 표현을 취득하고자하는 경우

+2

사이드 노트 : 이전 질문에 대한 [중요 정보] (http://meta.stackexchange.com/a/5235/135887)를 읽으십시오. – Charles

+0

이것은 TCP 코드입니다. UDP라는 것이 확실합니까? – EJP

답변

3

당신은 DatagramPacket.getAddress().toString()를 사용하여 패킷이 DatagramPacket.getAddress()

편집 에 의해 시작된 곳에서 먼 IP를 검색 할 수 있습니다.

예 : 그 샘플에 대해

DatagramPacket p = new DatagramPacket(buffer, 
buffer.length); 
ds.receive(p); // Receive data here... 
System.out.println("Received data packet from :"+p.getAddress().toString()); 
+0

나는이 문자열을 피곤했다. clientip = DatagramPacket.getAddress(); 하지만이 오류가 발생합니다. 형식 불일치 : InetAddress에서 String으로 변환 할 수 없습니다. 코드의 예를 들어 줄 수 있습니까? –

+0

내 편집을 참조하십시오 – GETah

+0

DatagramPacket 유형에서 비 정적 메소드 getAddress()에 대한 정적 참조를 만들 수 없습니다. 덕분에 도움이되었지만 지금은이 오류가 발생했습니다. –

1

: String clientip = DatagramPacket.getAddress(); 왜 그냥 String에 캐스팅하지 않습니다.

String clientip = (String) DatagramPacket.getAddress(); 

현재 Java 컴파일러가 없습니다. 그러나 그것을 시도하십시오. 정말 빨리 돌아올거야.