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

首頁 > 編程 > C# > 正文

使用C#實(shí)現(xiàn)基于TCP和UDP協(xié)議的網(wǎng)絡(luò)通信程序的基本示例

2020-01-24 01:12:19
字體:
供稿:網(wǎng)友

C#中使用TCP通信

TCP通信需要通信雙方都在線,所以需要先啟動(dòng)服務(wù)端進(jìn)行監(jiān)聽,客戶端才能獲得連接,服務(wù)端代碼:

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和端口實(shí)例化Listener       listener.Start();//開始監(jiān)聽       while (true)       {         client = listener.AcceptTcpClient();//接受一個(gè)Client         buffer = new byte[client.ReceiveBufferSize];         stream = client.GetStream();//獲取網(wǎng)絡(luò)流         stream.Read(buffer, 0, buffer.Length);//讀取網(wǎng)絡(luò)流中的數(shù)據(jù)         stream.Close();//關(guān)閉流         client.Close();//關(guān)閉Client          receiveString = Encoding.Default.GetString(buffer).Trim('/0');//轉(zhuǎn)換成字符串         Console.WriteLine(receiveString);       }     } 

只有服務(wù)端開啟監(jiān)聽后,客戶端才能正確連接,所以服務(wù)端要一直開啟監(jiān)聽,客戶端每次發(fā)送數(shù)據(jù),都要首先與服務(wù)端建立連接,連接建立完成后才進(jìn)行數(shù)據(jù)發(fā)送??蛻舳舜a:

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

201649111019897.jpg (456×186)

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

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

客戶端代碼:

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

201649111055659.jpg (363×174)

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 临沭县| 屏南县| 新乡市| 揭西县| 朝阳县| 上虞市| 报价| 盐亭县| 开鲁县| 扬中市| 永登县| 乌鲁木齐市| 德化县| 辉县市| 阳城县| 汾西县| 客服| 贺州市| 温州市| 五大连池市| 莱芜市| 赤峰市| 长春市| 安阳市| 伊川县| 壤塘县| 浏阳市| 汶川县| 湖北省| 青田县| 余江县| 孟连| 休宁县| 浪卡子县| 淳化县| 新蔡县| 略阳县| 深州市| 桓台县| 昔阳县| 务川|