采用TCPListener/TCPClient实现图片传输
生活随笔
收集整理的這篇文章主要介紹了
采用TCPListener/TCPClient实现图片传输
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基本概念
TCPClient:基于Tcp的客戶端封裝類,用于簡化Tcp客戶端的開發。主要通過構造帶入主機地址或者IPEndPonint對象,然后調用Connect進行和服務器點對點的連接,連接成功后通過GetStream方法返回NetworkStream對象。
TCPListener:基于Tcp的服務器端封裝類,用于監聽服務端或客戶端的連接請求。一旦有連接請求信息,立刻交給TcpClient的AcceptTcpClient方法捕獲,Start方法用于開始監聽。
服務器端代碼
private string address = "127.0.0.1"; private int port = 4321; private TcpListener listener;// 開始監聽 listener = new TcpListener(IPAddress.Parse(address), port); listener.Start();byte[] bStream = ReadImageFile("1.jpg"); // 一旦有客戶端連接上來,則發送圖片給客戶端while (true) {using (TcpClient client = listener.AcceptTcpClient()){Console.WriteLine("Connected");NetworkStream nStream = client.GetStream();try{nStream.Write(bStream, 0, bStream.Length);}catch (SocketException e1){Console.WriteLine("SocketException: " + e1);}}}將圖片轉成字節流
private static byte[] ReadImageFile(String img){FileInfo fileinfo = new FileInfo(img);byte[] buf = new byte[fileinfo.Length];FileStream fs = new FileStream(img, FileMode.Open, FileAccess.Read);fs.Read(buf, 0, buf.Length);fs.Close();GC.ReRegisterForFinalize(fileinfo);GC.ReRegisterForFinalize(fs);return buf; }客戶端代碼
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");using (TcpClient client = new TcpClient()){client.Connect(ipAddress, 4321);label1.Text = "Connected...";NetworkStream nNetStream = client.GetStream();Image returnImage = Image.FromStream(nNetStream);pictureBox1.Image = returnImage;}?
總結
以上是生活随笔為你收集整理的采用TCPListener/TCPClient实现图片传输的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Grpc C# 入门
- 下一篇: Microbit扩展编写