基于wifi的上位機模塊
0.png (35.91 KB, 下載次數: 67)
下載附件
2019-2-28 21:19 上傳
C#源程序如下:
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using System.Net;
- using System.Net.Sockets;
- namespace ServerApp
- {
- public partial class Form1 : Form
- {
- /// <summary>
- /// 服務器本地端口
- /// </summary>
- private const int LOCAL_PORT = 1500;
- TcpListener listener = null;
- public Form1()
- {
- InitializeComponent();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- listener = new TcpListener(IPAddress.Any, LOCAL_PORT);
- // 開始監聽
- listener.Start();
- AppendToTextBox("已開始監聽連接。");
- // 開始接受連接
- listener.BeginAcceptTcpClient(new AsyncCallback(acceptCallback), listener);
- }
- private void acceptCallback(IAsyncResult ar)
- {
- TcpListener lstn = (TcpListener)ar.AsyncState;
- // 開始接收數據
- TcpClient client = lstn.EndAcceptTcpClient(ar);
- Task.Run(() =>
- {
- // 獲取遠程主機名
- string host = client.Client.RemoteEndPoint.ToString();
- // 獲取流對象
- NetworkStream stream = client.GetStream();
- string msg = null;
- while(true)
- {
- // 讀取長度
- byte[] buffer = new byte[4];
- stream.Read(buffer, 0, 4);
- int len = BitConverter.ToInt32(buffer, 0);
- // 讀取正文
- buffer = new byte[len];
- stream.Read(buffer, 0, len);
- string recMsg = Encoding.UTF8.GetString(buffer);
- if (recMsg == "$END$")
- {
- string message = "客戶端" + host + "發送了退出指令。";
- txtRecMsgs.Invoke(new Action(() => AppendToTextBox(message)));
- break; //退出
- }
- else
- {
- txtRecMsgs.Invoke((Action)delegate()
- {
- // 顯示收到的消息
- string message = string.Format("來自{0}的消息:{1}", host, recMsg);
- AppendToTextBox(message);
- });
- }
- }
- client.Close();
- });
- // 繼續接受連接
- lstn.BeginAcceptTcpClient(new AsyncCallback(acceptCallback), lstn);
- }
- private void Form1_FormClosing(object sender, FormClosingEventArgs e)
- {
- if (listener != null)
- listener.Stop(); //停止監聽
- }
- private void AppendToTextBox(string msg)
- {
- txtRecMsgs.AppendText(msg + "\r\n");
- }
- }
- }
復制代碼
所有資料51hei提供下載:
wifi上位機.rar
(393.83 KB, 下載次數: 68)
2019-2-28 19:41 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|