新聞中心
C#異步網(wǎng)絡(luò)編程兩大方法是什么呢?讓我們來看看:

成都創(chuàng)新互聯(lián)公司2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元電白做網(wǎng)站,已為上家服務(wù),為電白各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
在進行C#異步網(wǎng)絡(luò)編程過程中,有些函數(shù)會以阻塞的方式執(zhí)行,此時就不能做其他事,十分沒有效率。C#異步網(wǎng)絡(luò)編程兩大方法來解決這個問題。一種方法是采用Asynchronous Sockets, 一種方法是調(diào)用非阻塞的Socket Methods。
C#異步網(wǎng)絡(luò)編程兩大方法一、Asynchronous Sockets的方法
Socket類的很多連接,發(fā)送,接收函數(shù)都有相應(yīng)的異步版本,如:BeginAccept,BeginConnect,BeginReceive,BeginReceiveFrom,BeginSend,BeginSendTo,EndAccept,EndConnect,EndReceive,EndReceiveFrom,EndSend,EndSendTo。這些函數(shù)都是成對出現(xiàn)的,利用了Windows的事件機制。應(yīng)用這些函數(shù),能夠避免網(wǎng)絡(luò)編程通信過程中出現(xiàn)阻塞。在BeginXXX函數(shù)中,注冊一個回調(diào)函數(shù),當相應(yīng)事件發(fā)生后,此回調(diào)函數(shù)得到調(diào)用,在此回調(diào)函數(shù)內(nèi)再調(diào)用相應(yīng)的EndXXX函數(shù),得到返回值。
C#異步網(wǎng)絡(luò)編程兩大方法二、調(diào)用非阻塞的Socket Methods方法
Asynchronous Sockets的方法是基于消息事件的操作系統(tǒng)特有的,利用了Windows的事件機制,在控制臺應(yīng)用程序中就不能夠應(yīng)用這種方法。另一種方法是在進行網(wǎng)絡(luò)通信過程中,在真正通信之前先察看狀態(tài),如果不會阻塞,才進行通信。Socket類中的Poll()函數(shù)和Select()函數(shù)能夠完成這種功能。Poll函數(shù)可以察看是否有可用數(shù)據(jù)可讀,可用連接可建立,是否可寫等,還可以設(shè)定超時時間。Poll函數(shù)只針對一個Socket,而Select函數(shù)可以針對一組Socket。
異步Sockets的背后實際上是采用了多線程的機制實現(xiàn)的。利用異步Sockets,可以不涉及多線程的情況下,完成多線程才能做的工作。
C#異步網(wǎng)絡(luò)編程兩大方法的基本內(nèi)容就向你介紹到這里,希望對你了解和學(xué)習(xí)C#異步網(wǎng)絡(luò)編程有所幫助。
網(wǎng)頁標題:C#異步網(wǎng)絡(luò)編程兩大方法淺析
轉(zhuǎn)載源于:http://fisionsoft.com.cn/article/dhjdghd.html


咨詢
建站咨詢
