日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TcpClient和TcpListener 类的使用-编写一个点对点聊天工具(初级入门篇)

發布時間:2024/9/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TcpClient和TcpListener 类的使用-编写一个点对点聊天工具(初级入门篇) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TcpClient類和TcpListener類屬于.NET框架下網絡通信中的應用層類,為Socket通信提供了更簡單,對用戶更為友好的接口。應用層類比位于底層的Socket類提供了更高層次的抽象,封裝了套接字的創建,不需要處理連接的細節。

TcpClient類以更高的抽象程度提供TCP服務的基礎,因此許多應用層次上的通信協議,比如FTP傳輸協議、HTTP超文本傳輸協議都直接創建在TcpClient等類之上。TcpClient類直接為客戶端設計,提供了通過網絡連接發送和接收數據的簡單方法;TcpListener類用于服務器端,用來監視TCP端口上客戶端的請求。

1.TcpClient類

要建立TCP連接,應該提供IP地址和端口號。TcpClient類有三種構造函數。

(1)public TcpClient():使用本機默認的IP地址和默認的端口0來創建TCP連接。

(2)public TcpClient(IPEndPoint):IPEndPoint指定在建立遠程連接時所使用的本機IP地址和端口號。

(3)public TcpClient(string,int):初始化TcpClient類的新實例,并連接到指定主機上的制定端口。

需要說明的是,在使用前兩種構造函數的時候,只是實現了TcpClient實例對象與IP地址和Port端口的綁定,要完成連接,還需要顯示地用Connect方法指定與遠程主機的連接。

在網絡數據接收和發送方面,TcpClient類使用NetworkStream網絡流處理技術,使得讀寫數據更加方便直觀,而不需考慮具體傳輸的內容。在使用GetStream方法獲得用于發送和接收數據的網絡流之后,就可以使用標準流讀寫方法Write和Read來發送和接收數據了。

2.TcpListener類

TcpListener類用于監視TCP端口上客戶端的請求,通過綁定本機IP地址和端口(IP地址和端口應與客戶端請求一致)來創建TcpListener對象實例,由Start()方法啟動偵聽;當TcpListener偵聽到客戶端連接后,根據客戶端的請求方式來處理請求,即如果是Socket連接請求,則使用AcceptSocket方法,如果是TcpClient連接請求,則使用AcceptTcpClient方法。最后要關閉使用的連接

tcpclient和socket的區別?

TcpClient是在Socket的基礎上運行的。

Socket完全可以涵蓋TcpClient,只不過TcpClient為了簡化一部分Socket的功能。

Socket支持TCP,UDP,IP包,Stream,Dgram等諸多類型
而TcpClient只支持TCP和Stream 實例:?TcpClient和TcpListener 類的使用-編寫一個點對點聊天工具(簡單入門演示,客戶端和服務端都是在本機)   服務器端代碼: class Program{static void Main(string[] args){IPAddress localAddr = IPAddress.Parse("127.0.0.1");//IP地址類,建立一個IP地址對象TcpListener server = new TcpListener(localAddr, 13000);//使用IP和端口建立偵聽器server.Start();//開始偵聽Console.WriteLine("等待一個連接");TcpClient client = server.AcceptTcpClient();//接受一個連接,并創建一個服務器端TcpClientConsole.WriteLine("客戶端已經連接");//創建網絡流相關的讀寫器NetworkStream stream = client.GetStream();StreamReader sr = new StreamReader(stream);StreamWriter sw = new StreamWriter(stream);while (true){Console.WriteLine("客戶端:"+sr.ReadLine());//從客戶端接受數據string msg = Console.ReadLine();sw.WriteLine(msg);//向客戶端發送數據 sw.Flush();}client.Close();}}   客戶端代碼: class Program{static void Main(string[] args){IPAddress serverAddr = IPAddress.Parse("127.0.0.1");//創建一個TcpClientTcpClient client = new TcpClient();//向服務器發送連接請求,需要與服務端的IP和端口一致(節點通信)client.Connect(serverAddr, 13000);//創建流讀寫器NetworkStream stream = client.GetStream();StreamReader sr = new StreamReader(stream);StreamWriter sw = new StreamWriter(stream);while (true){string msg = Console.ReadLine();//向服務器端發送數據 sw.WriteLine(msg);sw.Flush();//從服務器端讀取數據Console.WriteLine("服務器:"+sr.ReadLine());}client.Close();}}   效果展示: 先啟動服務端,再啟動客戶端,客戶端發送數據,服務端接受,然后服務端發送數據數據,客戶端同樣可以接收。往復發送接受,完成點對點聊天通信

轉載于:https://www.cnblogs.com/lqsilly/archive/2013/02/19/2916559.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的TcpClient和TcpListener 类的使用-编写一个点对点聊天工具(初级入门篇)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。