Socket 学习(三).1 tcp 通讯
生活随笔
收集整理的這篇文章主要介紹了
Socket 学习(三).1 tcp 通讯
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實現了,局域網客戶端 對客戶端 的通訊。 實際上這是 一個 客戶端 兼 服務端 。
2個阿里云服務器測試 效果圖:
本地效果圖:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Net; using System.Net.Sockets; using System.Threading;namespace 模擬客服端01 {public partial class Form1 : Form{public Form1(){InitializeComponent();TextBox.CheckForIllegalCrossThreadCalls = false;//禁止多線程檢查 }Socket socket_My; // 主動建立連接套接字Socket socket_Listen; // 監聽套接字Socket socket_Accept; // 接收套接字Thread thread_Receive;//接收 線程Thread thread_Accept; // 發送線程public void Accept(){while (true){socket_Accept = socket_Listen.Accept(); // 監聽套接字 接收 請求 返回 接收套接字textBoxMag.AppendText("客戶端連接成功!" + socket_Accept.RemoteEndPoint + "\r\n");thread_Accept = new Thread(Receive);thread_Accept.IsBackground = true;thread_Accept.Start();}}public void Receive(){while (true){try{byte[] B = new byte[1024];socket_Accept.Receive(B);// 接收套接字 接收信息string Message = Encoding.UTF8.GetString(B, 0, B.Length);if (!string.IsNullOrEmpty(Message)){textBoxMag.AppendText(Message + "\r\n");}}catch (Exception){textBoxMag.AppendText("連接關閉了" + "\r\n");btn_Conncet.Enabled = false;break;}}}private void StartListen_Click(object sender, EventArgs e){socket_Listen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);socket_Listen.Bind(new IPEndPoint(IPAddress.Any, int.Parse(textBoxMyPort.Text)));socket_Listen.Listen(10);textBoxMag.AppendText("開始監聽" + "\r\n");thread_Receive = new Thread(Accept);thread_Receive.IsBackground = true;thread_Receive.Start();StartListen.Enabled = false;}private void btn_Conncet_Click(object sender, EventArgs e){try{socket_My = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);socket_My.Connect(new IPEndPoint(IPAddress.Parse(textBoxIP.Text), int.Parse(textBoxPort.Text)));btn_Conncet.Enabled = false;}catch (Exception ex){textBoxMag.AppendText("連接不上" + "\r\n");}}private void button_Send_Click(object sender, EventArgs e){try{socket_My.Send(Encoding.UTF8.GetBytes(textBoxSend.Text + "\r\n"));}catch (Exception){textBoxMag.AppendText("發送失敗" + "\r\n");}}} }
這里指明了 端口號,和IP ,接下來 ,做一個服務端 記錄 它說有客戶端的 IP? 的通訊端口就好了。
轉載于:https://www.cnblogs.com/bingguang/p/4558587.html
總結
以上是生活随笔為你收集整理的Socket 学习(三).1 tcp 通讯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Object-C-block
- 下一篇: 八排序算法汇总