socket程式設計需要注意的問題

2021-06-18 20:52:32 字數 705 閱讀 9306

1. connect() tcp(sock_stream)是連線到服務端,udp(sock_dgram)是把本地位址埠和服務端的對應起來,並沒有建立連線

connect前也可以用bind()繫結本地位址埠到clientfd,bind的引數是本地位址埠;不使用bind則會自動繫結個

2. 如果是udp,則可以不用connect指定目標位址,直接用sendto就可以,recvfrom前必須繫結個位址(connect,bind,sendto都可以繫結本地位址埠)

tcp使用sendto前必須要connect

若同時使用connect和sendto,若2個的目標位址不一樣可能會引起錯誤或資料報丟失

3.accept recvfrom getsockname最後乙個引數 fromlen 要給個初始值,否則第乙個連線(埠收到的第乙個資料報)的傳送方ip位址總是0.0.0.0,埠也是0,如:

fromlen = sizeof(from); recvfrom(...(struct sockaddr *)&from, &fromlen);

4.so_reuseaddr 埠重用,否則關閉後馬上再次開啟bind會失敗 ,有的不支援so_reuseport(netstat -tuan 埠顯示time_wait,1-4min)

int opt=1; setsockopt(sckfd, sol_socket, so_reuseaddr, &opt, sizeof(opt));

需要注意的問題

決策樹id3和c4.5的差別?各自優點?boost演算法 cart 回歸樹用平方誤差最小化準則,分類樹用基尼指數最小化準則 gbdt與隨機森林演算法的原理以及區別。優化演算法中常遇到的kkt條件?作用是?最近鄰演算法knn 分類與回歸 l1和l2函式?l1和l2正則項的比較,如何解決 l1 求導困難...

ABAP程式設計需要注意的小問題

一 select語句中使用for all entries in需要注意的問題 在abap程式設計中,使用for all entries in是必不可少的語句,使用這個語句是先取出一些資料放到乙個內錶中,然後參考這張內錶的資料取出其它的資料,這在abap開發中非常常用,例如 data begin of...

多執行緒程式設計需要注意的問題

1 執行緒的優先順序 多執行緒程式設計中要注意協調好各個執行緒的優先順序。一般來說,控制線程的優先順序要高於 worker執行緒。這樣做,可以保證client 終端使用者或者其他模組 盡快得到響應。當控 制執行緒是與終端使用者互動的介面執行緒時更應如此,如果介面執行緒優先順序較低,介面可能 較長時間...