找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4591|回复: 4
收起左侧

基于wifi的上位机模块C#源码 Server与client

[复制链接]
ID:482329 发表于 2019-2-28 19:42 | 显示全部楼层 |阅读模式
基于wifi的上位机模块
0.png

C#源程序如下:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;

  10. using System.Net;
  11. using System.Net.Sockets;

  12. namespace ServerApp
  13. {
  14.     public partial class Form1 : Form
  15.     {
  16.         /// <summary>
  17.         /// 服务器本地端口
  18.         /// </summary>
  19.         private const int LOCAL_PORT = 1500;

  20.         TcpListener listener = null;

  21.         public Form1()
  22.         {
  23.             InitializeComponent();
  24.         }

  25.         private void Form1_Load(object sender, EventArgs e)
  26.         {
  27.             listener = new TcpListener(IPAddress.Any, LOCAL_PORT);
  28.             // 开始监听
  29.             listener.Start();
  30.             AppendToTextBox("已开始监听连接。");
  31.             // 开始接受连接
  32.             listener.BeginAcceptTcpClient(new AsyncCallback(acceptCallback), listener);
  33.         }

  34.         private void acceptCallback(IAsyncResult ar)
  35.         {
  36.             TcpListener lstn = (TcpListener)ar.AsyncState;
  37.             // 开始接收数据
  38.             TcpClient client = lstn.EndAcceptTcpClient(ar);

  39.             Task.Run(() =>
  40.                 {
  41.                     // 获取远程主机名
  42.                     string host = client.Client.RemoteEndPoint.ToString();
  43.                     // 获取流对象
  44.                     NetworkStream stream = client.GetStream();
  45.                     string msg = null;
  46.                     while(true)
  47.                     {
  48.                         // 读取长度
  49.                         byte[] buffer = new byte[4];
  50.                         stream.Read(buffer, 0, 4);
  51.                         int len = BitConverter.ToInt32(buffer, 0);
  52.                         // 读取正文
  53.                         buffer = new byte[len];
  54.                         stream.Read(buffer, 0, len);
  55.                         string recMsg = Encoding.UTF8.GetString(buffer);
  56.                         if (recMsg == "$END$")
  57.                         {
  58.                             string message = "客户端" + host + "发送了退出指令。";
  59.                             txtRecMsgs.Invoke(new Action(() => AppendToTextBox(message)));
  60.                             break; //退出
  61.                         }
  62.                         else
  63.                         {
  64.                             txtRecMsgs.Invoke((Action)delegate()
  65.                             {
  66.                                 // 显示收到的消息
  67.                                 string message = string.Format("来自{0}的消息:{1}", host, recMsg);
  68.                                 AppendToTextBox(message);
  69.                             });
  70.                         }
  71.                     }
  72.                     client.Close();
  73.                 });
  74.             // 继续接受连接
  75.             lstn.BeginAcceptTcpClient(new AsyncCallback(acceptCallback), lstn);
  76.         }

  77.         private void Form1_FormClosing(object sender, FormClosingEventArgs e)
  78.         {
  79.             if (listener != null)
  80.                 listener.Stop(); //停止监听
  81.         }

  82.         private void AppendToTextBox(string msg)
  83.         {
  84.             txtRecMsgs.AppendText(msg + "\r\n");
  85.         }
  86.     }
  87. }
复制代码

所有资料51hei提供下载:
wifi上位机.rar (393.83 KB, 下载次数: 67)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:493694 发表于 2019-3-29 08:37 | 显示全部楼层
顶楼主,这个可以有
回复

使用道具 举报

ID:503799 发表于 2019-4-3 09:07 | 显示全部楼层
这个不错的 谢谢
回复

使用道具 举报

ID:29043 发表于 2019-5-29 08:54 | 显示全部楼层
好东西啊
回复

使用道具 举报

ID:29043 发表于 2019-5-29 08:54 | 显示全部楼层
东西确实不错的额
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表