C# 網路編程(1)——C# 簡單實現區域網路內通訊

來源:互聯網
上載者:User

需求:

1、伺服器Server:

2、用戶端Client:

3、用戶端發送訊息到伺服器,伺服器接收到訊息後顯示並且發送確認資訊。

 

伺服器代碼如下所示:

using System;<br />using System.Collections.Generic;<br />using System.Linq;<br />using System.Text;<br />using System.Net;<br />using System.Net.Sockets;</p><p>namespace Lan_Server<br />{<br /> public class server<br /> {<br /> public static void Main()<br /> {<br /> try<br /> {<br /> // 把IP地址轉換為IPAddress的執行個體<br /> IPAddress ipAd = IPAddress.Parse("127.0.0.1");</p><p> // 初始化監聽器, 連接埠為8001<br /> TcpListener myList = new TcpListener(ipAd, 8001);</p><p> // 開始監聽伺服器連接埠<br /> myList.Start();</p><p> // 輸出伺服器啟動資訊<br /> Console.WriteLine("在8001連接埠啟動服務...");<br /> Console.WriteLine("本地節點為:" + myList.LocalEndpoint);<br /> Console.WriteLine("等待串連.....");</p><p> // 等待處理接入串連請求<br /> // 建立立的串連用通訊端s表示<br /> Socket s = myList.AcceptSocket();<br /> Console.WriteLine("串連來自 " + s.RemoteEndPoint);</p><p> // 接收用戶端資訊<br /> byte[] b = new byte[100];<br /> int k = s.Receive(b);<br /> Console.WriteLine("已接收...");<br /> for (int i = 0; i < k; i++)<br /> {<br /> Console.Write(Convert.ToChar(b[i]));<br /> }</p><p> // 處理用戶端請求,給用戶端回應<br /> ASCIIEncoding asen = new ASCIIEncoding();<br /> s.Send(asen.GetBytes("The string was recieved by the server."));<br /> Console.WriteLine("/n已發送回應資訊");<br /> Console.Read();</p><p> // 善後工作,釋放資源<br /> s.Close();<br /> myList.Stop();<br /> }<br /> catch (Exception e)<br /> {<br /> Console.WriteLine("Error..... " + e.StackTrace);<br /> }<br /> }<br /> }<br />}</p><p>

用戶端代碼如下所示:

using System;<br />using System.Collections.Generic;<br />using System.Linq;<br />using System.IO;<br />using System.Net;<br />using System.Text;<br />using System.Net.Sockets;</p><p>namespace Lan_Client<br />{<br /> public class client<br /> {<br /> public static void Main()<br /> {<br /> try<br /> {<br /> // 建立用戶端通訊端<br /> TcpClient tcpclnt = new TcpClient();<br /> Console.WriteLine("串連.....");</p><p> // 串連伺服器<br /> tcpclnt.Connect("127.0.0.1", 8001);<br /> Console.WriteLine("已串連");<br /> Console.Write("請輸入要傳輸的字串 : ");</p><p> // 讀入字串<br /> String str = Console.ReadLine();</p><p> // 得到用戶端的流<br /> Stream stm = tcpclnt.GetStream();</p><p> // 發送字串<br /> ASCIIEncoding asen = new ASCIIEncoding();<br /> byte[] ba = asen.GetBytes(str);<br /> Console.WriteLine("傳輸中.....");<br /> stm.Write(ba, 0, ba.Length);</p><p> // 接收從伺服器返回的資訊<br /> byte[] bb = new byte[100];<br /> int k = stm.Read(bb, 0, 100);</p><p> // 輸出伺服器返回資訊<br /> for (int i = 0; i < k; i++)<br /> {<br /> Console.Write(Convert.ToChar(bb[i]));<br /> }<br /> Console.Read();</p><p> // 關閉用戶端串連<br /> tcpclnt.Close();<br /> }<br /> catch (Exception e)<br /> {<br /> Console.WriteLine("Error..... " + e.StackTrace);<br /> }<br /> }<br /> }<br />}<br />

運行結果如下所示:

 

缺陷:

(1) 不能即時進行對話

(2) 不能手工進行關閉串連

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.