自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

解析C# Socket編程實(shí)現(xiàn)訪問(wèn)網(wǎng)絡(luò)的原理

開發(fā) 后端
C# Socket編程實(shí)現(xiàn)訪問(wèn)網(wǎng)絡(luò)的具體實(shí)現(xiàn)是如何的呢?我們?cè)贑# Socket編程的學(xué)習(xí)中需要掌握那些相關(guān)的內(nèi)容呢?那么本文就向你介紹具體的內(nèi)容。

在C# Socket編程學(xué)習(xí)中,我們知道MS為我們提供了System.Net.Sockets命名空間,里面包含了Socket類。那么C# Socket是如何實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的訪問(wèn)呢?讓我們來(lái)看看基本的原理。

C# Socket編程1.C# Socket的概念解釋

Windows中的很多東西都是從Unix領(lǐng)域借鑒過(guò)來(lái)的,Socket也是一樣。在Unix中,socket代表了一種文件描述符(在Unix中一切都是以文件為單位),而這里這個(gè)描述符則是用于描述網(wǎng)絡(luò)訪問(wèn)的。什么意思呢?就是程序員可以通過(guò)socket來(lái)發(fā)送和接收網(wǎng)絡(luò)上的數(shù)據(jù)。你也可以理解成是一個(gè)API。有了它,你就不用直接去操作網(wǎng)卡了,而是通過(guò)這個(gè)接口,這樣就省了很多復(fù)雜的操作。

C# Socket編程2.C# Socket訪問(wèn)網(wǎng)絡(luò):

C# Socket訪問(wèn)網(wǎng)絡(luò)需要的條件(與編程有關(guān)的部分):a. 要確定本機(jī)的IP和端口,socket只有與某一IP和端口綁定,才能發(fā)揮強(qiáng)大的威力。b. 得有協(xié)議吧(否則誰(shuí)認(rèn)得你這發(fā)送到網(wǎng)絡(luò)的是什么呀)。想要復(fù)雜的,我們可以自己來(lái)定協(xié)議。但是這個(gè)就不在這篇里提了,我這里介紹兩種大家最熟悉不過(guò)的協(xié)議:TCP & UDP。(別說(shuō)你不知道,不然...不然...我不告訴你)

如果具備了基本的條件,就可以開始用它們?cè)L問(wèn)網(wǎng)絡(luò)了。來(lái)看看步驟吧:

a. 建立一個(gè)套接字

b. 綁定本機(jī)的IP和端口

c. 如果是TCP,因?yàn)槭敲嫦蜻B接的,所以要利用ListenO()方法來(lái)監(jiān)聽網(wǎng)絡(luò)上是否有人給自己發(fā)東西;如果是UDP,因?yàn)槭菬o(wú)連接的,所以來(lái)者不拒。

d. TCP情況下,如果監(jiān)聽到一個(gè)連接,就可以使用accept來(lái)接收這個(gè)連接,然后就可以利用Send/Receive來(lái)執(zhí)行操作了。而UDP,則不需要accept, 直接使用SendTo/ReceiveFrom來(lái)執(zhí)行操作。(看清楚哦,和TCP的執(zhí)行方法有區(qū)別,因?yàn)閁DP不需要建立連接,所以在發(fā)送前并不知道對(duì)方的IP和端口,因此需要指定一個(gè)發(fā)送的節(jié)點(diǎn)才能進(jìn)行正常的發(fā)送和接收)

e. 如果你不想繼續(xù)發(fā)送和接收了,就不要浪費(fèi)資源了。能close的就close吧。

如果看了上面文字,你還不清楚的話,就來(lái)看看圖好了:

面向連接的套接字系統(tǒng)調(diào)用時(shí)序 

面向連接的套接字系統(tǒng)調(diào)用時(shí)序

無(wú)連接的套接字系統(tǒng)調(diào)用時(shí)序 

無(wú)連接的套接字系統(tǒng)調(diào)用時(shí)序

本文轉(zhuǎn)自:http://www.cnblogs.com/freeliver54/archive/2009/01/04/1368173.html

C# Socket編程中C# Socket訪問(wèn)網(wǎng)絡(luò)的基本原理和相關(guān)概念就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C# Socket編程以及C# Socket訪問(wèn)網(wǎng)絡(luò)的操作有所幫助。

【編輯推薦】

  1. 淺析C# Dispose方法模式的建立
  2. C# http分析常用工具淺析
  3. C#HTTP文件傳輸?shù)膶?shí)現(xiàn)淺析
  4. C# HttpWebRequest提交數(shù)據(jù)方式淺析
  5. C#抓取網(wǎng)頁(yè)程序的實(shí)現(xiàn)淺析
責(zé)任編輯:仲衡 來(lái)源: 博客園
相關(guān)推薦

2010-03-03 16:19:29

Python Sock

2009-08-31 18:17:32

C#接口編程

2009-09-02 16:30:20

C#定義數(shù)組

2009-08-31 17:16:12

C#實(shí)現(xiàn)接口

2009-08-31 18:01:41

C#接口事件

2009-09-07 15:27:04

C# MessageB

2012-09-24 15:35:24

C#網(wǎng)絡(luò)協(xié)議UDP

2012-09-24 15:13:50

C#網(wǎng)絡(luò)協(xié)議TCP

2009-02-20 09:50:29

C#方法重載編程

2009-08-20 16:33:44

Socket異步通訊

2009-09-09 13:18:10

C# TextBox滾C# TextBox

2012-09-25 11:28:38

C#網(wǎng)絡(luò)協(xié)議UDP

2009-08-21 17:53:25

C#網(wǎng)絡(luò)編程客戶端程序

2012-09-25 15:02:50

C#網(wǎng)絡(luò)協(xié)議

2009-08-25 11:10:20

C#編程實(shí)現(xiàn)顯示XML

2009-08-03 16:45:02

C#異步Socket

2009-08-18 16:45:40

C# Raw Sock

2009-08-27 17:14:36

C# Socket

2009-08-26 10:43:14

C#實(shí)現(xiàn)打印功能

2012-09-24 14:03:58

C#網(wǎng)絡(luò)協(xié)議C
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)