国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

使用C#實現基于TCP和UDP協議的網絡通信程序的基本示例

2019-10-29 21:29:56
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了使用C#實現基于TCP和UDP協議的網絡通信程序的示例,文中分別編寫了基本的服務器端和客戶端,代碼十分簡單,需要的朋友可以參考下
 

C#中使用TCP通信

TCP通信需要通信雙方都在線,所以需要先啟動服務端進行監聽,客戶端才能獲得連接,服務端代碼:

static void Main(string[] args)     {       TcpClient client = null;       NetworkStream stream = null;       byte[] buffer = null;       string receiveString = null;        IPAddress localIP = IPAddress.Parse("127.0.0.1");       int localPort = 11000;       TcpListener listener = new TcpListener(localIP, localPort);//用本地IP和端口實例化Listener       listener.Start();//開始監聽       while (true)       {         client = listener.AcceptTcpClient();//接受一個Client         buffer = new byte[client.ReceiveBufferSize];         stream = client.GetStream();//獲取網絡流         stream.Read(buffer, 0, buffer.Length);//讀取網絡流中的數據         stream.Close();//關閉流         client.Close();//關閉Client          receiveString = Encoding.Default.GetString(buffer).Trim('/0');//轉換成字符串         Console.WriteLine(receiveString);       }     } 

只有服務端開啟監聽后,客戶端才能正確連接,所以服務端要一直開啟監聽,客戶端每次發送數據,都要首先與服務端建立連接,連接建立完成后才進行數據發送。客戶端代碼:

static void Main(string[] args)     {       string sendString = null;//要發送的字符串       byte[] sendData = null;//要發送的字節數組       TcpClient client = null;//TcpClient實例       NetworkStream stream = null;//網絡流        IPAddress remoteIP = IPAddress.Parse("127.0.0.1");//遠程主機IP       int remotePort = 11000;//遠程主機端口        while (true)//死循環       {         sendString = Console.ReadLine();//獲取要發送的字符串         sendData = Encoding.Default.GetBytes(sendString);//獲取要發送的字節數組         client = new TcpClient();//實例化TcpClient         try         {           client.Connect(remoteIP, remotePort);//連接遠程主機         }         catch (System.Exception ex)         {           Console.WriteLine("連接超時,服務器沒有響應!");//連接失敗           Console.ReadKey();           return;         }         stream = client.GetStream();//獲取網絡流         stream.Write(sendData, 0, sendData.Length);//將數據寫入網絡流         stream.Close();//關閉網絡流         client.Close();//關閉客戶端       }     } 

C#,TCP,UDP,網絡通信程序

 

C#中使用UDP通信
UDP通信是無連接通信,客戶端在發送數據前無需與服務器端建立連接,即使服務器端不在線也可以發送,但是不能保證服務器端可以收到數據。
服務器端代碼:

static void Main(string[] args)     {       UdpClient client = null;       string receiveString = null;       byte[] receiveData = null;       //實例化一個遠程端點,IP和端口可以隨意指定,等調用client.Receive(ref remotePoint)時會將該端點改成真正發送端端點       IPEndPoint remotePoint = new IPEndPoint(IPAddress.Any, 0);        while (true)       {         client = new UdpClient(11000);         receiveData = client.Receive(ref remotePoint);//接收數據         receiveString = Encoding.Default.GetString(receiveData);         Console.WriteLine(receiveString);         client.Close();//關閉連接       }     } 

客戶端代碼:

static void Main(string[] args)     {       string sendString = null;//要發送的字符串       byte[] sendData = null;//要發送的字節數組       UdpClient client = null;        IPAddress remoteIP = IPAddress.Parse("127.0.0.1");       int remotePort = 11000;       IPEndPoint remotePoint = new IPEndPoint(remoteIP, remotePort);//實例化一個遠程端點        while (true)       {         sendString = Console.ReadLine();         sendData = Encoding.Default.GetBytes(sendString);          client = new UdpClient();         client.Send(sendData, sendData.Length, remotePoint);//將數據發送到遠程端點         client.Close();//關閉連接       }     } 

C#,TCP,UDP,網絡通信程序



注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南部县| 安西县| 宜宾县| 苍梧县| 昌都县| 英德市| 南京市| 蕲春县| 阿克陶县| 利川市| 富平县| 富民县| 大邑县| 东丰县| 金湖县| 呼和浩特市| 射阳县| 九龙县| 偃师市| 昌乐县| 吉林市| 吴堡县| 方山县| 大英县| 岐山县| 新和县| 东丰县| 无锡市| 寿光市| 莱州市| 哈尔滨市| 灌云县| 桑日县| 丁青县| 应城市| 祁门县| 吉木萨尔县| 布尔津县| 邢台县| 晋州市| 墨江|