当前位置:编程学习 > C#/ASP.NET >>

Socket 连接超时!待大侠解救,新手没积分 添加了异步阻塞线程还是增加。

--------------------编程问答--------------------   /// <summary>
        /// 数据下发完成
        /// </summary>
        public event MessBufferHandle Send;
        protected void OnSend(MessBuffer ReviceBuffer)
        {
            if (Send != null)
            {
                Send(this, ReviceBuffer);
            }
        }
        /// <summary>
        /// 数据接收完成
        /// </summary>
        public event ReviceBufferHandle Revice;
        protected void OnRevice(ReviceBuffer ReviceBuffer)
        {
            if (Revice != null)
            {
                Revice(this, ReviceBuffer);
            }
        }
        /// <summary>
        /// 监听启动错误
        /// </summary>
        public event MessEventHandle Err;
        protected void OnErr(MessEvent Mess)
        {
            if (Err != null)
            {
                Err(this, Mess);
            }
        }
        /// <summary>
        /// 普通消息
        /// </summary>
        public event MessEventHandle Infor;
        protected void OnInfor(MessEvent Mess)
        {
            if (Infor != null)
            {
                Infor(this, Mess);
            }
        }
        /// <summary>
        /// 监听启动成功
        /// </summary>
        public event MessEventHandle Succ;
        protected void OnSucc(MessEvent Mess)
        {
            if (Succ != null)
            {
                Succ(this, Mess);
            }
        }
        /// <summary>
        /// 接收到连接
        /// </summary>
        public event AcceptEventHandle Accept;
        protected void OnAccept(AcceptEvent Mess)
        {
            if (Accept != null)
            {
                Accept(this, Mess);
            }
        }
        /// <summary>
        /// 断开连接
        /// </summary>
        public event AcceptEventHandle DisConnect;
        protected void OnDisConnect(AcceptEvent Mess)
        {
            if (DisConnect != null)
            {
                DisConnect(this, Mess);
            }
        }
     
    }
    public class StateObject
    {
        public static int BufferSize = 1024;
        public byte[] RevaceBuf;
        public System.Net.Sockets.Socket Client;
        public SocketError Error ;
        public StateObject()
        {
            RevaceBuf = new byte[StateObject.BufferSize];
        }
    }
    public class SendObject
    {
        public byte[] SendBuf;
        public System.Net.Sockets.Socket Client;
        public SendObject(byte[] SendBuff, System.Net.Sockets.Socket ConnSocket)
        {
            SendBuf = SendBuff;
            Client = ConnSocket;
        }
    } --------------------编程问答-------------------- msdn 上下载了一个例子通过委托调用数据,别的都好使,就是线程时不时的就增加了,求大手解救 这个我用了超时阻塞也不好使。 
我这个是客户端是成品的 gps定位设备,只能被动发送响应,所以心跳包就用不上,还有什么跟好的方法可以是线程不在增加,求大手路过
我看过sp1234的东西 没有放异步阻塞 线程增加的会很快,放了异步阻塞,还是会增加。 --------------------编程问答-------------------- 求大手 路过,顶起来!   --------------------编程问答-------------------- 看到私信了 一般情况不会有那么多线程啊 异步接收 然后就是tcp连接 超时主动断开 如果每个链接都开线程 服务器受不了的 --------------------编程问答-------------------- 我现在也是遇到这样的问题。
我的客户端必须keep alive .暂时无解,希望神人惊现呀。
补充:.NET技术 ,  .NET Framework
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,