zoukankan      html  css  js  c++  java
  • c# System.Net.Sockets =》TcpListener用法

     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[1024];var stream = tcpClient.GetStream();
                    while (true)
                    {
                        var count = stream.Read(buffer, 0, buffer.Length);
    
                        if (count == 0)
                        {
                            throw new Exception("客户端下线");
                        }
    
                        var str = Encoding.ASCII.GetString(buffer, 0, count);
                    }
                }
                catch
                {
                    // ignored
                }
            }
  • 相关阅读:
    Design Tutorial: Inverse the Problem
    The Number Off of FFF
    "Money, Money, Money"
    No Pain No Game
    Group
    Vases and Flowers
    Codeforces Round #466 (Div. 2)
    ST表
    Wildcard Matching
    HDOJ 3549 Dinitz
  • 原文地址:https://www.cnblogs.com/Song2333/p/11400561.html
Copyright © 2011-2022 走看看