private TcpListener _listener;
#region 初始化 listener
public override void Init()
{
try
{
DevInfo.Read();
var localaddr = IPAddress.Parse(Ip);
var port = Convert.ToInt32(port);
_listener = new TcpListener(localaddr, port);
}
finally
{
StatusChangedEvent?.Invoke(Status);
}
}
#endregion

开始运行

        public override void Start()
{
Init();
_listener?.Start();
Task.Factory.StartNew(MonitTcpClientConnect);
}

监听

        private void MonitTcpClientConnect()
{
while (true)
{
try
{
var client = _listener.AcceptTcpClient();
Task.Factory.StartNew(MonitorRecvData, client);
}
catch
{
_listener.Stop();
_listener = null; return;
}
}
}

处理事件

        private void MonitorRecvData(object obj)
{
try
{
var tcpClient = obj as TcpClient;
if (tcpClient == null)
{
return;
} var buffer = new byte[];var stream = tcpClient.GetStream();
while (true)
{
var count = stream.Read(buffer, , buffer.Length); if (count == )
{
throw new Exception("客户端下线");
} var str = Encoding.ASCII.GetString(buffer, , count);
}
}
catch
{
// ignored
}
}

最新文章

  1. jQuery.first() 函数
  2. Hibernate自动创建表
  3. Ceph与OpenStack的Glance相结合
  4. http协议客户端向服务器端请求时一般需要发送的内容
  5. android boot.img 结构
  6. codeforces 334A - Candy Bags
  7. jQuery中实现自定义方法的扩展
  8. freemaker的基本语法
  9. SVG 教程
  10. 一张图看懂 JS 的事件机制
  11. 理解Linux文件系统之inode
  12. struts2和spring mvc的比较
  13. 用redis的订阅发布解决了扫码支付实时响应的问题
  14. 蓝桥每周一题之1. 3n+1 问题
  15. UOJ268 [清华集训2016] 数据交互 【动态DP】【堆】【树链剖分】【线段树】
  16. [转] 前后端分手大师——MVVM 模式
  17. 可空类型(Nullable)
  18. springboot+shiro+redis(单机redis版)整合教程-续(添加动态角色权限控制)
  19. Docker技术入门与实战 第二版-学习笔记-8-网络功能network-1-单个host上的容器网络
  20. Leetcode 784

热门文章

  1. KB奇遇记(3):糟糕的IT现状
  2. apache jmeter 使用
  3. [b0042] python 归纳 (二七)_gui_tkinter_基本使用
  4. MySQL数据篇(五)--SQL对数据进行按月统计,或对数据进行按星期统计
  5. Hive性能调优(一)----文件存储格式及压缩方式选择
  6. 5.Python网络编程_通过继承实现多线程
  7. 【BZOJ1443】[JSOI2009]游戏Game(二分图+博弈)
  8. C++学习一 结构与结构体
  9. Html学习之十四(阴影文字的设计)
  10. 201871010111-刘佳华《面向对象程序设计(java)》第十三周学习总结