關於服務端開發的整理

2022-02-18 23:55:22 字數 860 閱讀 9311

1.當recv返回值為0是表示對方已經正常(msdn說是完美的)的斷開連線.

2.當recv返回socket_error時,說明對方已經斷開連線,但是可能是非正常斷開(斷網或者客戶端程序結束).

服務端socket如何釋放客戶端連線的資源

0 懸賞園豆:20 [待解決問題] 瀏覽: 682次

乙個請求/應答模式的socket應用,作為服務端接收客戶端的請求資料,然後響應客戶端,採用非同步監聽和非同步接收方式。現在的問題是如何判斷乙個客戶端是否已經關閉了,還有就是如何釋放客戶端連線請求過來的socket所占用的資源。因為在執行的時候服務端socket的程序記憶體占用一直在飆公升,到最後就是導致服務掛掉。求幫助,求解答。。。

.net技術.net framework john chen | 初學一級 | 園豆:180

提問於:2011-11-08 01:43

< > 找優秀程式設計師,就在 收藏

所有回答(2)

0其實在客戶端關閉的時候,服務端會一直收到乙個空位元組,然後服務端就一直死在那裡了,這個時候就要在服務端做乙個判斷了,如果收到空位元組時就應該把與客戶端連線的套接字關閉,這麼就沒什麼問題了;

釋放客戶端請求的資源就看你用到了什麼了就在上面那個判斷裡面新增釋放的**

補充一點

最好顯式呼叫shudown(fd, flag)

close有時候會意外(只有最後一次close才呼叫shutdown)

不然的話很容易發生fin_wait1, fin_wait2還有close_wait的

我曾經搞過10000個close_wait

服務程式被憤怒的核心殺掉

關於服務端資料加密

目前的情況下api被很多地方應用,隨之而來的是api的安全性問題。安全性問題有以下幾個方面 ddos 拒絕服務攻擊 介面被惡意呼叫,使真實的使用者無法享受到正常暢通的服務。這個比較單純,也比較容易處理,通過ip限制來做,並且輔以一些硬體裝置應該就沒問題了,同時伺服器 商也可以提供相應的服務。使用對稱...

服務端開發規範Restful

規範了url,提交方式的語義。遵守restful規範,有些東西不言而喻,減少前後端不必要的交流。舉例提交方式 位址說明 get 查 http localhost 8080 book 1查詢id為1的書 post 增 http localhost 8080 book 1新增一本id1的書 delete...

HTTP服務端JSON服務端

最後更新日期 2014 5 18 author kagula 內容簡介 cppcms是個開源web開發框架,通過它可以很容易實現http服務和json服務,這裡介紹cppcms開發環境的搭建。寫乙個cppcms測試程式,它建立http服務,向瀏覽器返回hello,world頁面。cppcms依賴的一...