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

Socket网络编程,服务端监听的问题。

--------------------编程问答-------------------- 这是java? --------------------编程问答--------------------
引用 1 楼 yaozhiyong110 的回复:
这是java?
这是c#,亲 --------------------编程问答-------------------- 看起来没问题,这有socket的服务器例子,找个试试:
http://download.csdn.net/detail/geoff08zhang/4571358 --------------------编程问答-------------------- 懒得看程序了。

你应该让你的服务每天凌晨自动重新启动一次。 --------------------编程问答-------------------- 每天重启只能欺骗自己 --------------------编程问答--------------------
        static void EndAccept(IAsyncResult ar)
        {
            bool processing = false;
            Socket client = null;
            try
            {
                Socket worker = (Socket)ar.AsyncState;//为接入的链接建立新的通道
                   client = worker.EndAccept(ar);
                AcceptDone.Set();
                //获得用户名 、密码
                   Work wk = new Work();
                string UserA = wk.ReceiveLoginInfoFromClient(client);
                string UserState = ps.ParseUserInfo(UserA);
                if (UserState == "0")
                {
                    wk.Send(client, Constrans.LoginBack);
                    wk.mysocket = client;
                    wk.heartbp = Heartbp;

                    Process p = Process.GetCurrentProcess();
                    ProcessThreadCollection PTC = p.Threads;
                    Console.WriteLine("当前线程数量------  "+PTC.Count);
                    //用线程池进行操作
                        ThreadPool.QueueUserWorkItem(new WaitCallback(wk.WorkReceive), null);
                    processing = true;
                }
            }
            catch (Exception e)
            {
                StreamOperate.StreamWrite("GPSDataCenter", "Program.cs", "EndAccept()", e.Message);
                Console.WriteLine("客户端链接异常:" + e.Message);
            }
            finally
            {
                 if(client != null && !processing)
                 {
                     client.Shutdown(SocketShutdown.Send);
                     client.Close();
                 }
            }
        }


服务器宕了,cmd中运行netstat -n看一下连接数,特别是半连接数 --------------------编程问答-------------------- 这代码只是个片断,估计问题出在没有释放断开的连接。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,