SORU
30 EYLÜL 2008, Salı


Ne kadar uzak tarafında bir yuva yakın algılamak için?

Ne varsa Socket#close() uzak tarafında bir soket çağırıldı eğer tespit ediyorsunuz?

CEVAP
30 EYLÜL 2008, Salı


isConnected yöntem ise uzak tarafı yuva kapalı varsa bile true döner yardımcı olmayacak. Bunu deneyin:

public class MyServer {
    public static final int PORT = 12345;
    public static void main(String[] args) throws IOException, InterruptedException {
        ServerSocket ss = ServerSocketFactory.getDefault().createServerSocket(PORT);
        Socket s = ss.accept();
        Thread.sleep(5000);
        ss.close();
        s.close();
    }
}

public class MyClient {
    public static void main(String[] args) throws IOException, InterruptedException {
        Socket s = SocketFactory.getDefault().createSocket("localhost", MyServer.PORT);
        System.out.println(" connected: "   s.isConnected());
        Thread.sleep(10000);
        System.out.println(" connected: "   s.isConnected());
    }
}

Sunucuyu başlatmak, istemci başlatın. "Bağlı: gerçek yuva ikinci kez kapalı olsa bile," iki kez yazdırır göreceksiniz

Tek yolu gerçekten bulmaktır tarafından okuma (alacaksın -1 dönüş değeri) veya yazma (IOException (kırık boru) atılan) ilişkili Giriş/OutputStreams.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Marques Brownlee

    Marques Brow

    21 Mart 2008
  • PaulGBelliveau

    PaulGBellive

    5 Mart 2009
  • ShoSho

    ShoSho

    20 Ocak 2010