發(fā)文章
發(fā)文工具
撰寫
網(wǎng)文摘手
文檔
視頻
思維導圖
隨筆
相冊
原創(chuàng)同步助手
其他工具
圖片轉文字
文件清理
AI助手
留言交流
面向對象課上,金旭亮老師(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ā)變得更加
來自: 昵稱10504424 > 《工作》
0條評論
發(fā)表
請遵守用戶 評論公約
socket
同樣,socket接口增加了網(wǎng)絡通信操作的抽象定義,與文件操作一樣,每個打開的socket都對應一個整數(shù),我們稱它為socket描述符,該整數(shù)也是socket描述符在文件描述符表中的索引值。但socket描述符在描述...
1、socket是什么?套接字是什么?
UNIX/Linux 中的 socket 是什么?我們可以通過 socket() 函數(shù)來創(chuàng)建一個網(wǎng)絡連接,或者說打開一個網(wǎng)絡文件,socket() 的返回值就是文件描述符。有了文件描述符,我們就可以使用普通的文件操作函數(shù)來傳...
計算機經(jīng)典書籍匯總
計算機網(wǎng)絡及Windowssocket網(wǎng)絡編程
計算機網(wǎng)絡及Windowssocket網(wǎng)絡編程 Windows socket之IOCP實例----IOCP開發(fā)駕照理論考試系統(tǒng) Windows socket IO完成端口開發(fā)駕照理論考試系統(tǒng)實例 這一節(jié)我們講解如何利用套接字完成端口開發(fā)...
網(wǎng)絡通訊編程基礎——TCP/UDP/IP Multicast
網(wǎng)絡通訊編程基礎——TCP/UDP/IP Multicast 作者 陸其明-->CAsyncSocket類在較低層次上封裝了Windows Socket API,并且通過內(nèi)建一個(隱藏的)窗口,實現(xiàn)了適合Windows應用的異步機制(Windows S...
Windows Socket編程簡介_網(wǎng)絡技術_程序開發(fā)_遠播教育網(wǎng)
Windows Socket編程簡介_網(wǎng)絡技術_程序開發(fā)_遠播教育網(wǎng)Windows Socket編程簡介發(fā)表時間:2008-02-22 編輯:江昌華 來源:編者按:WinSock編程使用WinSockAPI的編程,應該了解TCP/IP的基礎知識。使用i...
與Socket的第一次“約會”
與Socket的第一次“約會”.NET 4.0網(wǎng)絡開發(fā)入門之旅--與Socket的第一次"約會" 注: 這是一個針對 網(wǎng)絡開發(fā)領域初學者 的系列文章,可作為《.NET 4.0 面向對象編程漫談 》一書的擴充閱讀...
Windows Sockets網(wǎng)絡編程讀書筆記(及簡單C/S實現(xiàn))
網(wǎng)絡軟件商為 Windows 開發(fā)一套標準的、通用的 TCP/ IP 編程接口 ,并使之類似于 UNIX下的 sockets ,這就是 Windows sockets ;Windows so...
物聯(lián)網(wǎng)網(wǎng)絡編程、Web編程綜述
只有路由器的互聯(lián)網(wǎng)IP才能被外界所獲知,外界是不能主動獲知局域網(wǎng)IP具體對應哪個設備的,只有路由器1才知道,因此所有對外發(fā)送的數(shù)據(jù)包...
微信掃碼,在手機上查看選中內(nèi)容