導航:首頁 > 編程語言 > c非同步網路編程

c非同步網路編程

發布時間:2024-06-28 18:28:51

Ⅰ C# C/S網路編程 由於系統緩存空間不足或列隊已滿,不能執行套接字上的操作

改成以下代碼試試

public void ReceiveMsg()

{
// 啟動非同步接收
IAsyncResult iar = udpReceiveClient.BeginRecevice(
new AsyncCallback(ReceiveCallback),
udpReceiveState);
}

private void ReceiveCallback(IAsyncResult iar)
{
// 繼續非同步接收
ReceiveMsg();

// 完成前一次非同步接收EndReceive處理
UdpState udpReceiveState = iar.AsyncState as UdpState;

//……
}
要注意的是:
1)Socket非同步接收處理過程中用到了.net framework內部線程池,而線程池中線程的數量是有限制的。
2)ReceiveMsg中的 while(true)循環是多餘的
3)ReceiveMsg中的 lock(this) 沒有意義
4)WaitOne, Sleep() 都是多餘的

Ⅱ 在windows下用C語言如何實現socket網路編程,需要用到哪些頭文件或者庫

需要用到的頭文件包含:

#include <winsock2.h>

#include <windows.h>

與Linux環境下socket編程相比,windows環境多了一個步驟:啟動或者初始化winsock庫

Winsock,一種標准API,一種網路編程介面,用於兩個或多個應用程序(或進程)之間通過網路進行數據通信。具有兩個版本:

Winsock 1:

Windows CE平台支持。

頭文件:WinSock.h

庫:wsock32.lib

Winsock 2:

部分平台如Windows CE貌似不支持。通過前綴WSA可以區別於Winsock 1版本。個別函數如WSAStartup、WSACleanup、WSARecvEx、WSAGetLastError都屬於Winsock 1.1規范的函數;

頭文件:WinSock2.h

庫:ws2_32.lib

mswsock.h用於編程擴展,使用時必須鏈接mswsock.dll

(2)c非同步網路編程擴展閱讀

winsock庫的載入與卸載:

載入:int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);

載入成功,返回值為0。

WORD wVersionRequested:載入的winsock版本,使用宏MAKEWORD(x, y),x表示高位元組,y表示低位元組。然而使用時MAKEWORD(2, 2)。高位元組與低位元組相同~~

LPWSADATA lpWSAData:WSADATA結構的指針,傳入參數後,系統幫助我們填充版本信息。有興趣的可以看看結構體內容,不過基本用不著。

卸載:int WSACleanup(void);比起載入,卸載的函數真是輕松愉快。

Ⅲ c語言的網路編程特點有哪些(在線等待,答得好馬上給分!)

1、你說得用C語言開發網路程序,一定指的是在WIN/UNIX/LINUX/SOLARIS/FreeBSD等多進程/多線程操作系統下的編程,網路編程是基於B/S或者C/S架構的,無論那種,S都需要有多線程或者子進程的處理與客戶端通信的能力,DOS下的C是不具備這個能力。另外,網路程序是對操作系統多線程/多進程能力要求很高的應用,所以UNIX下的C編程能很好的滿足要求。
2、網路編程只要遵從一種協議,語言是沒有限定的,比較各種語言編寫的網路應用的特點,歸根結底還是回到這種語言已經它存在的操作系統的特點。相比與其他語言開發的網路程序,用UNIX/SOKCET/C這種模式開發的網路應用能最大限度的利用系統資源,同時兼備UNIX的穩定性和C的高效率,是大型網路應用經常採用的方式,例如著名的freeBSD,大量的論壇都是這樣的方式。很多網路應用,離開UNIX和C,在重連接負荷的情況下是無法工作的。
3、但是由於高效與通用是一對矛盾,UNIX/C開發的網路應用,比較靠近系統底層,代碼的可移植性、可重用性相對於使用winsock編程的WINDOWS/C++方案的網路應用要差一些,windows的MFC已經對網路協議做了很多層的封裝,使用C++來繼承可以節省大量開發時間。
4、結論,如果你想開發自己全新的網路應用/協議,並且要承擔很重的用戶訪問負荷,那麼你可以用C,而且操作系統要用UNIX/LINUX,如果你僅僅希望用已經成熟的internet協議寫一些界面漂亮的網路應用,推薦你用WINDOWS/C++方式。

閱讀全文

與c非同步網路編程相關的資料

熱點內容
雲伺服器難玩嗎 瀏覽:274
如何ping雲端伺服器 瀏覽:148
文件夾中能不能存放設備文件 瀏覽:3
繼電器連接單片機 瀏覽:14
寧明天西到崇左源碼 瀏覽:657
10g文件夾誤刪能恢復嗎 瀏覽:132
dos命令服務啟動 瀏覽:724
aws雲伺服器付費 瀏覽:171
水滴桿文件夾圖片 瀏覽:26
java百戰程序員25講 瀏覽:383
java斑馬 瀏覽:998
名片開發源碼 瀏覽:333
如何買便宜的雲伺服器 瀏覽:774
linux的命令提示符 瀏覽:979
機器人焊接手柄編程入門教程 瀏覽:653
方舟怎麼進入之前進去的伺服器 瀏覽:810
家有萌寶解壓 瀏覽:929
linuxc一站式學習pdf 瀏覽:20
奇思妙想pdf 瀏覽:992
租用裸金屬伺服器需要什麼資質 瀏覽:636