我嘗試學習TCP/IP,並且作爲練習,我開發了一個局域網主機發現實用程序,如http://overlooksoft.com。局域網中的外部主機沒有響應
抓取網頁後,我發現nmap
這個工作。
我做這個小測試:
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.DatagramChannel;
public class NetDiscovery {
public static void main(String[] args) throws Throwable {
DatagramChannel channel = DatagramChannel.open();
channel.bind(
new InetSocketAddress(InetAddress.getByName("192.168.1.7"), 2416));
ByteBuffer buffer = ByteBuffer.allocate(1024);
SocketAddress address =
new InetSocketAddress(InetAddress.getByName("192.168.1.255"), 80);
channel.send(buffer, address);
SocketAddress sender = channel.receive(buffer); // <<<<<<<<<<<<<<<<<<<<
System.err.println(
((InetSocketAddress)sender).getAddress().getHostAddress());
}
}
我希望通過標有// <<<<<<<<<<<<<<<<<<<<
我的局域網上的其他主機(4),但這一計劃在該行無限期地等待這個「UDP Ping廣播」一些響應
爲什麼?
那些其他主機是否有任何監聽和回覆UDP端口80? –
不,我試圖發現我的局域網像http://overlooksoft.com那樣。也許我應該使用ICMP? – Aubin