sendto、WSASendto,recvfrom、WSARecvfrom 區別?
winsock2版的函式 加了WSA 字首
且前者是阻塞模式, 後者是非阻塞模式。
若想設定前者為非阻塞模式
u_long mode = 1;
ioctlsocket(sendsocket,FIONBIO,&mode); //mode為非零是:非阻塞模式,為零是:阻塞模式
sento(sendSocket,sendData,strlen(sendData),0,(LPSOCKADDR)&desAddr,sizeof(desAddr));//傳送資料
》》》 Windows擴充套件函式說明
Windows Socket規範提供了一組基於Berkeley套接字函式的擴充套件函式。
這些擴充套件函式在實現Socket功能的基礎上,還允許基於訊息或函式進行處理,處理非同步網路事件,開啟重疊I/O功能。除了WSAStartup()函式和WSACleanup()函式外,編寫Socket程式可以不使用這些擴充套件API函式,但是建議使用這些擴充套件函式以保持與Windows程式設計模式一致。
表16-3中列出了有關Socket的Windows擴充套件函式。
表16-3 有關Socket的Windows擴充套件函式
Windows擴充套件函式 |
功 能 |
WSAAccept() |
accept()函式的擴充套件版本, 允許條件接收和Socket分組 |
WSAAsyncGetHostByAddr() |
根據地址非同步獲取主機,基於訊息實現 |
WSAAsyncGetHostByName() |
根據名稱非同步獲取主機,基於訊息實現 |
WSAAsyncGetProtoByName() |
根據名稱非同步獲取協議資訊,基於訊息實現 |
WSAAsyncGetProtoByNumber() |
根據協議號非同步獲取協議資訊,基於訊息實現 |
WSAAsyncGetServByName() |
根據伺服器名稱和埠號,非同步 獲取伺服器資訊,其是基於訊息實現的 |
WSAAsyncGetServByPort() |
根據埠號和協議,非同步獲取服 務器資訊,其是基於訊息實現的 |
WSAAsyncSelect() |
實現非同步版本的select()函式 |
WSACancelAsyncRequest() |
取消非同步獲取系列的函式,即取消 WSAAsyncGetXByY()函式 |
WSACleanup() |
退出底層的Windows Socket DLL的引用 |
WSACloseEvent() |
銷燬事件物件 |
WSAConnect() |
Connect()函式的擴充套件版本,允許交換 連線資料和QOS標準 |
WSACreateEvent() |
建立事件物件 |
WSADuplicateSocket() |
複製Socket |
WSAEnumNetworkEvents() |
列舉網路事件 |
WSAEnumProtocols() |
列舉當前系統中每個有效的協議資訊 |
WSAEventSelect() |
連線網路事件和事件物件 |
WSAGetLastError() |
獲取最近的Windows Socket錯誤資訊 |
WSAGetOverlappedResult() |
返回重疊操作的完成狀態 |
WSAGetQOSByName() |
根據服務名獲取QOS引數 |
WSAHtonl() |
Htonl()函式的擴充套件版本,將32位整 數從主機位元組順序轉換成網路位元組順序 |
WSAHtons() |
Htons()函式的擴充套件版本,將16位整數 從主機位元組順序轉換成網路位元組順序 |
WSAIoctl() |
ioctl 函式的重疊執行版本 |
WSAJoinLeaf() |
增加一個結點到會話中 |
WSANtohl() |
ntohl()函式的擴充套件版本,將32位整數從 網路位元組順序轉換成主機位元組順序 |
WSANtohs() |
ntohs()函式的擴充套件版本,將16位整數 從網路位元組順序轉換成主機位元組順序 |
WSAProviderConfigChange() |
接收安裝服務或解除安裝服務的通知訊息 |
WSARecv() |
Recv()函式的擴充套件版本 |
WSARecvFrom() |
recvfrom()函式的擴充套件版本 |
Windows擴充套件函式 |
功 能 |
WSAResetEvent() |
重置事件物件 |
WSASend() |
send()函式的擴充套件版本 |
WSASendTo() |
sendto()函式的擴充套件版本 |
WSASetEvent() |
設定事件物件 |
WSASetLastError() |
設定最近的錯誤資訊 |
WSASocket() |
socket()函式的擴充套件版本。使用 WSAPROTOCOL_INFO結構作 為輸入引數,並建立重疊socket |
WSAStartup() |
初始化Windows Sockets DLL |
WSAWaitForMultipleEvents() |
在多個事件物件上阻塞 |
上面這些擴充套件函式是對Windows Socket規範提供的Socket函式的封裝,支援訊息和函式處理。
如在WSAAsyncGetServByName()函式中,可以指定接收訊息的對話方塊控制代碼和訊息,當非同步函式執行完畢後,會發送訊息給對話方塊,使用者可以在對話方塊中捕獲相應的訊息進行處理。
這與Windows的訊息程式設計模式是一致的。因此,Windows Socket擴充套件函式的封裝方便了Socket程式的開發。使用者可以儘量使用擴充套件函式開發Socket程式。
相關推薦
sendto、WSASendto,recvfrom、WSARecvfrom 區別?
winsock1版的函式 無WSA字首 winsock2版的函式 加了WSA 字首 且前者是阻塞模式, 後者是非阻塞模式。 若想設定前者為非阻塞模式 u_long mode = 1; ioctlsocket(sendsocket,FIONBIO,&
left jion、jion,Union、Union All有什麽區別?
left 重復行 兩個 結果 內連接 inner out 區別 left jion Left jion:Left join相對來說數據多些join必須兩表都有內連接inner Join:只連接兩個表匹配的行左外連接left join 或left outer join:左表在
XHTML、HTML4,HTML5 之間的區別
這幾個都是W3C負責制定的一個標準,用於網頁內容的標籤。 HTML4是html標準中比較成熟的一個版本,使用時間比較長,也是現今大部分網頁遵循的標準。 XHTML 1.0標準 為了規範HTML,W3C結合XML制定了XHTML 1.0標準,XHTML是能滿足XML要求的HTM
畫素、英寸,Dpi 三者的區別以及關係
Dpi(每平方英寸畫素數目):影象細節程度的度量 Dpi 代表每平方英寸上所含“點”的數目,它決定了一副影象在細節上到底有多細(儘管並不依賴於你的視覺感受)。但是,什麼是“點”? “點”是一個模糊不清的術語。點可以指的是畫素、畫筆的一“點”或者是一個油墨印跡。 當你置身
Js-parentNode、parentElement,childNodes、children 的區別
----------------------------------------------------------------------parentNode、parentElement,childNodes、children 它們有什麼區別呢? -------------
JS陣列常用方法:forEach、map、filter、some、every,filter與map區別
forEach() 方法對陣列的每一個元素執行一次提供的函式。 map() 方法建立一個新陣列,其結果是該陣列都執行一次函式,原函式保持不變。 filter() 方法使指定函式測試陣列的每一個元素,並放回一個通過元素的新陣列。 some() 方法測試該陣列有元素通過了指
一文總結應用、Web、HTTP伺服器,Apache、Nginx,Tomcat、IIS、JBoss、Glassfish等區別
一個學習的總結,或者說是彙總,有些連結給出的觀點過時,已按照自己的理解經過修改編輯; 應用、Web、HTTP伺服器 這篇文章講述典型的Web伺服器的工作原理。 Web伺服器和應用伺服器有什麼區別?EAR和WAR部署包之間的不同? 參考stackove
Python&int&method&String切片、索引,列表、元祖、字典
count() you one 獲取 eth lang ber phone favor 一、int的兩個方法 a、 __add__() bit_length() number_one = 7number_two = 5print(number_one + number_tw
2018年慕課網視頻教程(vue、react,docker、python、java、Go語言)
java、 tom 深度 面試 銷售 拉勾網 react code python升級 如需下述哪一個課程,加QQ: 3475362830,非免費,幾大洋,非誠勿擾! Go語言實戰流媒體視頻網站基於Golang協程實現流量統計系統Google資深工程師深度講解Go語言 jav
梯度與邊緣檢測常用運算元:Roberts、Prewitt、Sobel、LOG,Canny、Lapacian運算元
原文:https://blog.csdn.net/swj110119/article/details/51777422 原文:https://blog.csdn.net/gdut2015go/article/details/46779251 幾種邊緣檢測運算元的比較Robert
【Common】-NO.122.common.1 - pv、uv、ip,tps、qps、rps術語
Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of Mastery:5 Practical Level:5 Desired Goal:5 Arc
3springboot:springboot配置檔案(配置檔案、YAML、屬性檔案值注入<@Value、@ConfigurationProperties、@PropertySource,@ImportResource、@Bean>)
1.配置檔案: springboot預設使用一個全域性配置檔案 配置檔名是固定的 配置檔案有兩種(開頭均是application,主要是檔案的字尾): ->application. properties ->application
【精】iOS知識樹,知識點(包括物件、Block、訊息轉發、GCD、執行時、runloop、動畫、Push、KVO、tableview,UIViewController、提交AppStore)
本文旨在總結iOS知識網路,知識點,該知識網路羅列出常見UIKit、Foundation的物件特點和一些使用經驗,可以看成是一本書;文字編輯採用樹的形式,對知識點進行羅列,並標註一些使用經驗(★)希望對初學者有用或給一些解決疑難雜症者提供思路;某些知識點會深入
準確率,召回率,F1 值、ROC,AUC、mse,mape評價指標
在機器學習、資料探勘領域,工業界往往會根據實際的業務場景擬定相應的業務指標。本文旨在一起學習比較經典的三大類評價指標,其中第一、二類主要用於分類場景、第三類主要用於迴歸預測場景,基本思路是從概念公式,到
準確率,召回率,F1 值、ROC,AUC、mse,mape 評價指標
在機器學習、資料探勘領域,工業界往往會根據實際的業務場景擬定相應的業務指標。本文旨在一起學習比較經典的三大類評價指標,其中第一、二類主要用於分類場景、第三類主要用於迴歸預測場景,基本思路是從概念公式,到優缺點,再到具體應用(分類問題,本文以二分類為例)。 1.準確率P、召回
FILE檔案流的中對fopen、fseek、fread、fwrite,fprintf、fputs、fgets的理解
目前課題中使用,記錄下來方便以後檢視。 fopen fopen函式用來開啟一個檔案,其呼叫的一般形式為: FILE * fopen(const char *path,const char * mode); fopen()函式中第一個形式引數表示檔名, 可以包含路徑和檔名
C#中流的讀寫器BinaryReader、BinaryWriter,StreamReader、StreamWriter詳解
問題一:為什麼要出現與檔案流配套的讀寫器型別呢? 主要是因為檔案流物件在讀寫位元組的效率是相當高的,但是在處理其他型別的資料時會比較麻煩, 所以就出現了二進位制讀寫器和文字讀寫器來解決這一問題。
數值後面加“L”、“l”、“U”、“u”、“H”、“h”,“B”、“b”,數值前面加“0”和“0x”的意義
2018-01-14 建立人:Ruo_Xiao 2018-01-15 修改人:Ruo_Xiao 增加對long的說明。 2018-07-14 修改人:Ruo_Xiao 1、增加對數值後面加“
獨立的股票交易系統,自帶股票發行、撮合,一致性、高併發,適合高校教學實訓
看了前幾年開發的一套股票交易系統,頗為滿意。雖然花了很多時間和精力,但是和上證所的系統相比較,覺得價效比極高。 股票交易系統最大的要求是安全、一致性高、支援高併發。我在設計時,根據交易規則和下單流程,決定在資料層進行撮合業務,把股票或資金凍結(鎖定)業務也放在資料層,速度奇
1byte、1KB、4KB,1MB、1GB用16進製表示的範圍。任意地址範圍求位元組數
請先開啟一個線上的2進位制轉16進位制的轉換器,便於理解除錯。首先 1個位元組=1byte=8Bit。位元組是計算機資訊科技用於計量儲存容量的一種計量單位,也表示一些計算機程式語言中的資料型別和語言字元。1KB = 1024byte = 2的10次方 byte,轉化為16進製