Socket网络编程,服务端监听的问题。
--------------------编程问答-------------------- 这是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#