0
它是簡單的java套接字客戶端/服務器模型(服務器發送數據和客戶端接收)。問題是,當客戶端關閉了服務器發送數據的位置(服務器不檢測客戶端是否關閉)。我知道服務器可以檢測並關閉流,但我想知道它到底發生了什麼。當客戶端關閉時,服務器的println()方法發送到哪裏
它是簡單的java套接字客戶端/服務器模型(服務器發送數據和客戶端接收)。問題是,當客戶端關閉了服務器發送數據的位置(服務器不檢測客戶端是否關閉)。我知道服務器可以檢測並關閉流,但我想知道它到底發生了什麼。當客戶端關閉時,服務器的println()方法發送到哪裏
這取決於您使用的協議。
如果使用TCP,服務器的套接字將在客戶端的套接字關閉時發出異常,或者在客戶端的套接字關閉後嘗試發送某些信息。
如果使用UDP,則Socket將不會檢測客戶端是否仍在監聽端口併發送數據。在客戶端的機器上,它被忽略。
謝謝你。在這裏我使用TCP,並且我知道在C語言中它會在客戶端關閉時拋出一個異常。令我困惑的是在java中使用TCP時,當客戶端關閉時服務器仍然在發送數據,它在哪裏發送? – RongRong 2012-08-03 01:56:36
數據仍然被髮送到同一個端口,但是由於Socket被關閉,它會被忽略。 – Dahaka 2012-08-03 11:47:30