在tcp中,我是伺服器,對方是客戶端,對方掛掉了,我怎麼能夠知道呢?
unp中說的fin,rst對於應用層來講,是不可見的……
我跟客戶端的聯絡只是通過read,write嘛。
socket又不會自動給我訊號啥的。
當對方掛掉了之後呢
如果對方正常關閉的,應該發乙個fin過來。
我這邊的select到乙個可讀,然後讀返回0.
如果對方不正常掛掉了,應該發乙個rst過來。
我這邊select表示可寫。
然後寫第一次,引發乙個rst,寫第二次,引發乙個sigpipe。
這個sigpipe預設動作是乾掉程序。
因此我們處理掉這個訊號。
那麼,第一次觸發rst的write出去的資料就丟掉了,找不回來了。
這個~~我還沒有想出來怎麼辦……。
JUnit中對Exception的判斷
說來慚愧,雖然之前已經看過junit的原始碼了,也寫了幾篇部落格,但是長時間不寫test case,今天想要寫拋exception相關的test case時,竟然不知道怎麼寫了。好記性不如爛筆頭,記下來先 對於使用驗證test case方法中丟擲的異常,我起初想到的是一種比較簡單的方法,但是顯得比較...
Python中對變數是否為None的判斷
三種主要的寫法有 第一種 if x is none 第二種 if not x 當x為none,false,空字串 0,空列表,空字典 空元組 這些時,not x為真,即無法分辨出他們之間的不同。第三種 if not x is none 在python中,none 空列表 空字典 空元組 0等一系列代...
在C 中對中文網域名稱判斷和解析
什麼是中文網域名稱,及其的編碼方式?中文網域名稱是含有中文的新一代網域名稱,同英文網域名稱一樣,是網際網路上的門牌號碼。中文網域名稱在技術上符合2003年3月份ietf發布的多語種網域名稱國際標準 rfc3454 rfc3490 rfc3491 rfc3492 中文網域名稱屬於網際網路上的基礎服務,...