小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

C# Socket編程基礎入門

 昵稱10504424 2013-02-19

面向對象課上,金旭亮老師(CSDN博客專家,大牛)說,只有通過網(wǎng)絡編程才能提升一個人的編程能力,因為在C#中的網(wǎng)絡編程, 又要用到多線程控制,還要考慮通信的效率,通信的控制等,要控制數(shù)據(jù)傳送的正確性,可靠性。雖然以前接觸了一部分網(wǎng)絡編程,但是還是理論不夠系統(tǒng),所以打算在系統(tǒng)的學習一下網(wǎng)絡編程的基礎理論。

 

1. Socket簡介

 

windows Socket,就是在windows下編程用的socket, socket其實就是一套網(wǎng)絡編程機制,封裝了對網(wǎng)絡數(shù)據(jù)流的一些控制。Socket最早本來是unix系統(tǒng)下的編程接口,但是后來在unix上的廣泛使用,在美國政府和軍方的推動下,TCP/IP網(wǎng)絡的流行,以及TCP/IP模型成為標準模型,Socket也成為Unix上標準的網(wǎng)絡編程接口。1991年微軟把Unix上面的Socket的原理引用到自己的windows平臺下,所以有了現(xiàn)在廣泛使用的windows socket. 因為網(wǎng)絡模型已經(jīng)非常穩(wěn)定了,而且多年沒有大的改變,所以在Socket的發(fā)展上也比較平緩,幾乎沒有大的改變,現(xiàn)在最常用的就是32位的wsock.dll.提供我們進行在windows中網(wǎng)絡編程。

 

2. C#中的Socket

C#中用的Socket是在windows socket的基礎上進行封裝的類庫,更方便的使用。并且C#中還在Socket的基礎上繼續(xù)封裝了TcpListener,TcpClient,UdpClient等類庫來簡化我們的開發(fā)工作。

 

3. 網(wǎng)絡中的通信

 

為了讓網(wǎng)絡中的兩臺電腦中的兩個進程可以進行通信,我們需要通過IP地址來標識主機,用端口號標識程序,之所以不用進程號標識程序,是因為在不同的終端上相同的程序可能會有不同的進程號,而且不同的操作系統(tǒng)可能也會有不同的進程號分配方式。

 

Socket實際上就是網(wǎng)絡進程通信中所要使用的一些緩沖區(qū)及相應的數(shù)據(jù)結構。

 

4. window Socket的類型

 

有三種不同的windows Socket:

 (1). 流式套接字(SOCK_STREAM):提供了一種可靠地,面向連接的雙向數(shù)據(jù)傳輸?shù)姆?,在這種套接字中,數(shù)據(jù)的傳送沒有差錯,不會重復發(fā)送。如果使用TCP協(xié)議發(fā)送大量數(shù)據(jù),則需要使用這種套接字。

 (2). 數(shù)據(jù)報套接字(SOCK_DGRAM): 提供無連接的,不可靠的雙向數(shù)據(jù)傳送。數(shù)據(jù)在傳送的過程中可能會丟失,但是不負責丟失的數(shù)據(jù),并且傳送的數(shù)據(jù)以包為基本單位,包的最大為1046字節(jié)的內(nèi)容,接收到的包不保證按照發(fā)送順序。UDP協(xié)議實現(xiàn)了數(shù)據(jù)報套接字。

 (3). 原始套接字(SOCK_RAW): 可以對較低層協(xié)議進行訪問。

 

網(wǎng)絡上的所有應用程序都是基于套接字進行開發(fā)的,無論的網(wǎng)路游戲還是網(wǎng)頁,都是在套接字的接觸上進行的再次開發(fā)。

套接字屏蔽了網(wǎng)絡模型和TCP/IP協(xié)議的復雜性,使得網(wǎng)絡開發(fā)變得更加

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多