標(biāo)題:
基于wifi的上位機(jī)模塊C#源碼 Server與client
[打印本頁(yè)]
作者:
Virogous
時(shí)間:
2019-2-28 19:42
標(biāo)題:
基于wifi的上位機(jī)模塊C#源碼 Server與client
基于wifi的上位機(jī)模塊
0.png
(35.91 KB, 下載次數(shù): 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>
/// 服務(wù)器本地端口
/// </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);
// 開(kāi)始監(jiān)聽(tīng)
listener.Start();
AppendToTextBox("已開(kāi)始監(jiān)聽(tīng)連接。");
// 開(kāi)始接受連接
listener.BeginAcceptTcpClient(new AsyncCallback(acceptCallback), listener);
}
private void acceptCallback(IAsyncResult ar)
{
TcpListener lstn = (TcpListener)ar.AsyncState;
// 開(kāi)始接收數(shù)據(jù)
TcpClient client = lstn.EndAcceptTcpClient(ar);
Task.Run(() =>
{
// 獲取遠(yuǎn)程主機(jī)名
string host = client.Client.RemoteEndPoint.ToString();
// 獲取流對(duì)象
NetworkStream stream = client.GetStream();
string msg = null;
while(true)
{
// 讀取長(zhǎng)度
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 + "發(fā)送了退出指令。";
txtRecMsgs.Invoke(new Action(() => AppendToTextBox(message)));
break; //退出
}
else
{
txtRecMsgs.Invoke((Action)delegate()
{
// 顯示收到的消息
string message = string.Format("來(lái)自{0}的消息:{1}", host, recMsg);
AppendToTextBox(message);
});
}
}
client.Close();
});
// 繼續(xù)接受連接
lstn.BeginAcceptTcpClient(new AsyncCallback(acceptCallback), lstn);
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (listener != null)
listener.Stop(); //停止監(jiān)聽(tīng)
}
private void AppendToTextBox(string msg)
{
txtRecMsgs.AppendText(msg + "\r\n");
}
}
}
復(fù)制代碼
所有資料51hei提供下載:
wifi上位機(jī).rar
(393.83 KB, 下載次數(shù): 68)
2019-2-28 19:41 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
xzj3203577
時(shí)間:
2019-3-29 08:37
頂樓主,這個(gè)可以有
作者:
huming18
時(shí)間:
2019-4-3 09:07
這個(gè)不錯(cuò)的 謝謝
作者:
zixiaguying
時(shí)間:
2019-5-29 08:54
好東西啊
作者:
zixiaguying
時(shí)間:
2019-5-29 08:54
東西確實(shí)不錯(cuò)的額
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1