程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> C#.net同步異步SOCKET通訊和多線程總結系列文章(1)

C#.net同步異步SOCKET通訊和多線程總結系列文章(1)

編輯:.NET實例教程

同步套接字通信

Socket支持下的網上點對點的通信

服務端實現監聽連接,客戶端實現發送連接請求,建立連接後進行發送和接收數據的功能

服務器端建立一個socket,設置好本機的ip和監聽的端口與socket進行綁定,開始監聽連接請求,當接收到連接請求後,發送確認,同客戶端建立連接,開始與客戶端進行通信。

客戶端建立一個socket,設置好服務器端的IP和提供服務的端口,發出連接請求,接收到服務的確認後,盡力連接,開始與服務器進行通信。

服務器端和客戶端的連接及它們之間的數據傳送均采用同步方式。

 

Socket

Socket是tcp\ip網絡協議接口。內部定義了許多的函數和例程。可以看成是網絡通信的一個端點。在網絡通信中需要兩個主機或兩個進程。通過網絡傳遞數據,程序在網絡對話的每一端需要一個socket。

        Tcp/IP傳輸層使用協議端口將數據傳送給一個主機的特定應用程序,協議端口是一個應用程序的進程地址。傳輸層模塊的網絡軟件模塊要於另一個程序通信,它將使用協議端口,socket是運行在傳輸層的api,使用socket建立連接發送數據要指定一個端口給它。

Socket:

Stream Socket流套接字 Socket提供雙向、有序、無重復的數據流服務,出溜大量的網絡數據。

Dgram socket數據包套接字 支持雙向數據流,不保證傳輸的可靠性、有序、無重復。

Row socket 原始套接字 訪問底層協議

建立socket 用C#

命名空間:using System.Net;using System.Net.Socket;

構造新的socket對象:socket原型:

Public socket (AddressFamily addressFamily,SocketType sockettype,ProtocolType protocolType)

AddressFamily 用來指定socket解析地址的尋址方案。Inte.Network標示需要ip版本4的地址,Inte.NetworkV6需要ip版本6的地址

SocketType參數指定socket類型Raw支持基礎傳輸協議訪問,Stream支持可靠,雙向,基於連接的數據流。

ProtocolType表示socket支持的網絡協議

 

定義主機對象:

IPEndPoint類:IPEndPoint構造方法   位置:System.Net

原型:1)    public IPEndPoint(IPAddress address,int port)      2)public IPEndPoint(long address,int port) 參數1整型int64如123456,參數2端口int32

主機解析:

利用DNS服務器解析主機,使用Dns.Resolve方法

原型:public static IPHostEntry Resolve(string hostname) 參數:待解析的主機名稱,返回IPHostEntry類值,IPHostEntry為Inte.Net主機地址信息提供容器,該容器提供存有IP地址列表,主機名稱等。

Dns.GetHostByName獲取本地主機名稱

原型:public static IPHostEntry GetHostByName(string hostname)

GetHostByAddress

原型:1)public static IPHostEntry GetHostByAddress(IPAddress address) 參數:IP地址 2)public static IPHostEntry GetHostByAddress(string address) IP地址格式化字符串

 

端口綁定和監聽:

同步套接字服務器主機的綁定和端口監聽

Socket類的Bind(綁定主機),Listen(監聽端口),Accept(接收客戶端的連接請求)

Bind:原型:public void Bind(EndPoint LocalEP)參數為主機對象 IPEndPoint

Listen:原型:public void Listen(int backlog) 參數整型數值,掛起隊列最大值

accept:原型:public socket accept() 返回為套接字對象

演示程序:

IPAddress myip=IPAddress.Parse(“127.0.0.1”);

IPEndPoint myserver=new IPEndPoint(myip,2020);

Socket sock=new Socket(AddressFamily.Inte.Network,SocketType.Stream,ProtocolType.Tcp);

Sock.Bind(myserver);

Sock.Listen(50);

Socket bbb=sock.Accept();



類別:.Net(c#) | 添加到搜藏 | 浏覽(42) | 評論 (0)/* 
''); if(pre[0]){ document.write(''上一篇:'' + pre[2] + ''    ''); } if(post[0]){ document.write(''下一篇:'' + post[2] + ''''); } document.write('''');}/*]]>*/
 
上一篇:C#.Net同步異步SOCKET通訊和多線...    下一篇:最基本的Socket編程(C#)
 

相關文章: • C#.net同步異步SOCKET通訊和多線...          • C#.net同步異步SOCKET通訊和多線... • )" href="http://hi.baidu.com/dongdongjiao/blog/item/5944b139179ecbf03b87ce5e.Html" target="_blank">C#.Net同步異步SOCKET通訊和多線...         

C#.net同步異步SOCKET通訊和多線... • C#.Net同步異步SOCKET通訊和多線...          • 用VB編寫異步多線程下載程序 • c#多線程教學(4):線程池和異步編...          • 異步調用與多線程關系的眾多不同... • c#多線程:線程池和異步編程          • 多線程,重疊I/O,異步讀寫 命名通...  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved