C#使用TCP協(xié)議實(shí)現(xiàn)數(shù)據(jù)發(fā)送和接受的方法
c#使用TCP協(xié)議實(shí)現(xiàn)數(shù)據(jù)發(fā)送和接受
使用TCP協(xié)議實(shí)現(xiàn)數(shù)據(jù)的發(fā)送和接受包括客戶端和服務(wù)端兩個(gè)部分;
1. 服務(wù)端代碼如下所示:
using System; using System.Net; using System.Net.Sockets; using System.Text; class Program { static void Main() { // 設(shè)置服務(wù)器IP地址和端口號(hào) IPAddress ip = IPAddress.Parse("127.0.0.1");//寫入實(shí)際的IP地址 int port = 8888; // 創(chuàng)建TCP監(jiān)聽器 TcpListener listener = new TcpListener(ip, port); listener.Start(); Console.WriteLine("等待客戶端連接..."); // 接受客戶端連接 TcpClient client = listener.AcceptTcpClient(); Console.WriteLine("客戶端已連接"); // 獲取網(wǎng)絡(luò)流 NetworkStream stream = client.GetStream(); // 讀取客戶端發(fā)送的數(shù)據(jù) byte[] buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string dataReceived = Encoding.ASCII.GetString(buffer, 0, bytesRead); Console.WriteLine("接收到數(shù)據(jù): " + dataReceived); // 向客戶端發(fā)送數(shù)據(jù) string dataToSend = "Hello, Client!"; byte[] dataBytes = Encoding.ASCII.GetBytes(dataToSend); stream.Write(dataBytes, 0, dataBytes.Length); Console.WriteLine("已發(fā)送數(shù)據(jù): " + dataToSend); // 關(guān)閉連接 stream.Close(); client.Close(); listener.Stop(); } }
2. 客戶端代碼:
using System; using System.Net.Sockets; using System.Text; class Program { static void Main() { // 設(shè)置服務(wù)器IP地址和端口號(hào) string serverIP = "127.0.0.1"; int serverPort = 8888; // 創(chuàng)建TCP客戶端 TcpClient client = new TcpClient(); client.Connect(serverIP, serverPort); Console.WriteLine("已連接到服務(wù)器"); // 獲取網(wǎng)絡(luò)流 NetworkStream stream = client.GetStream(); // 向服務(wù)器發(fā)送數(shù)據(jù) string dataToSend = "Hello, Server!"; byte[] dataBytes = Encoding.ASCII.GetBytes(dataToSend); stream.Write(dataBytes, 0, dataBytes.Length); Console.WriteLine("已發(fā)送數(shù)據(jù): " + dataToSend); // 讀取服務(wù)器發(fā)送的數(shù)據(jù) byte[] buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string dataReceived = Encoding.ASCII.GetString(buffer, 0, bytesRead); Console.WriteLine("接收到數(shù)據(jù): " + dataReceived); // 關(guān)閉連接 stream.Close(); client.Close(); } }
總結(jié):上述示例使用服務(wù)器端創(chuàng)建一個(gè)TCP監(jiān)聽器,等待客戶端連接。當(dāng)客戶端連接后,服務(wù)器端從客戶端接收數(shù)據(jù),并向客戶端發(fā)送數(shù)據(jù)??蛻舳藙t連接到服務(wù)器,向服務(wù)器發(fā)送數(shù)據(jù),并接收服務(wù)器發(fā)送的數(shù)據(jù)。
到此這篇關(guān)于c#使用TCP協(xié)議實(shí)現(xiàn)數(shù)據(jù)發(fā)送和接受的文章就介紹到這了,更多相關(guān)c# TCP協(xié)議內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#遞歸應(yīng)用之實(shí)現(xiàn)JS文件的自動(dòng)引用
這篇文章主要為大家詳細(xì)介紹了C#如何利用遞歸實(shí)現(xiàn)JS文件的自動(dòng)引用的功能,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,需要的可以參考一下2023-03-03C#開發(fā)微信門戶及應(yīng)用(5) 用戶分組信息管理
這篇文章主要為大家詳細(xì)介紹了C#開發(fā)微信門戶及應(yīng)用第五篇,用戶分組信息管理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06C#使用System.Environment獲取電腦的相關(guān)屬性
這篇文章主要為大家詳細(xì)介紹了C#使用System.Environment獲取電腦的相關(guān)屬性,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10C#實(shí)現(xiàn)文件上傳下載Excel文檔示例代碼
這篇文章主要介紹了C#實(shí)現(xiàn)文件上傳下載Excel文檔示例代碼,需要的朋友可以參考下2017-08-08C#實(shí)現(xiàn)修改系統(tǒng)時(shí)間的方法
這篇文章主要介紹了C#實(shí)現(xiàn)修改系統(tǒng)時(shí)間的方法,是一個(gè)非常實(shí)用的功能,需要的朋友可以參考下2014-07-07C# 調(diào)用API函數(shù)彈出映射網(wǎng)絡(luò)驅(qū)動(dòng)器對(duì)話框問題
C#中的.net的常用對(duì)話框中沒有映射網(wǎng)絡(luò)驅(qū)動(dòng)映射對(duì)話框,所以需要用windows的API函數(shù)去實(shí)現(xiàn)彈出映射網(wǎng)絡(luò)驅(qū)動(dòng)器對(duì)話框2014-01-01