Я прочитал некоторые материалы о ServerSocket и попытался прослушать порт 80 и напечатать, например, InetAddress веб-сайта, который я открывал в веб-браузере, но моя программа не могла этого сделать. Мой код:ServerSocket на порту 80 это правильно?
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Site implements Runnable {
private int port;
Site(int port){
this.port = port;
}
public void run() {
try {
ServerSocket server = new ServerSocket(port);
while(true){
Socket socket = server.accept();
System.out.println(socket.getInetAddress());
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String args[]){
Thread thread = new Thread(new Site(80));
thread.start();
}
}
Когда я запускаю свою программу, я только один раз в то время цикла, и программа не печатает System.out.println(socket.getInetAddress())
и в результате, когда я открываю свой веб-браузер и посетить сайты HTTP я не см. любой выход. Знаете ли вы, что я делаю неправильно? Знаете ли вы какие-либо другие способы печати InetAddress для открытого веб-сайта? Любые материалы оценят.
Что вы здесь делаете? Я не понимаю. –
Ваша программа выглядит так, как будто она должна работать. Что происходит, когда вы запускаете его? У вас есть исключения? – Kenster
«Не удалось» не является описанием проблемы. Сообщение об ошибке, исключении, трассировке стека, неожиданном поведении, в каком бы то ни было смысле. Измените это на свой вопрос. NB, вам необходимо закрыть принятые сокеты. – EJP