2011-02-23 20 views
5

Mam ten fragment kodu:Java Socket i ServerSocket Issue

ServerSocket serversocket=new ServerSocket(DEFAULTPORT); 
serversocket.setSoTimeout(1000); 
Socket socket=serversocket.accept(); 
  1. Czy zamknięcie obiektu serversocket również wpływa na stan obiektu socket?

  2. Jeśli zamknę obiekt serversocket, czy mogę nadal używać obiektu socket do strumieni?

+0

hę? co to ma wspólnego z moim pytaniem? –

Odpowiedz

3

Krótkie odpowiedzi są:

1) nie

2) tak

Dłuższa odpowiedź brzmi:

Do czeka ServerSocket dla klientów, aby połączyć (czeka w swojej metodzie akceptacji). Gdy istnieje klient, metoda accept zwraca, a dokładniej zwraca obiekt Socket, który następnie reprezentuje punkt końcowy serwera połączenia serwer-klient. Jeśli serwer zamknie swoje gniazdo serwerowe, nie będzie już słuchał (nie przyjmuje już nowych klientów), ale klienci, z którymi ma już połączenie z gniazdem, nie będą mieli wpływu.

Twój kod nie jest "zły" per se, jednak może akceptować tylko jednego klienta i tylko wtedy, gdy jest połączony w ciągu 1000 milisekund.

Tutaj jest wprowadzenie w tym przykładowy kod:

http://download.oracle.com/javase/tutorial/networking/sockets/clientServer.html

+0

super dzięki! Kody służyły tylko wyjaśnieniu, aby czytelnicy mogli zrozumieć, co mam na myśli. –

Powiązane problemy