2024年6月11日发(作者:)
编程经验谈 如何处理socket连接后
服务器端或
Socket编程经验谈---如何处理socket连接后服务器端或客户端的断开
(转)2010年12月29日星期三14:50现象:服务器端等待客户断连接,当
socket连接建立后,如果客户端异常断开,服务器会抛出异常,从而导致程序
运行中断
目标:希望服务器一直等待连接,客户端中断后程序不退出,而客户端重
新恢复后可以继续保持连接
代码:
public class Receive
{
public static byte buffer=new byte[1024];
public static ManualResetEvent socketEvent=new
ManualResetEvent(false);
public static Socket sListener=new
Socket(etwork,,);
public static Socket handler=null;
public static string ClientBroken="An connection was forcibly
closed by the remote host";
public static void receive()
{
try
{
ine("Main ThreadID:
"+rentThreadId());
byte bytes=new byte[1024];
IPAddress ipAddr=("127.0.0.1");
int Port=10001;
IPEndPoint EPServer=new IPEndPoint(ipAddr,Port);
//Binding asocket (EPServer);
//Start listening (10);
while(true)
{
if(handler==null)
{
//first must make aconnect ine("waiting for
aconnection.");
//asychronous function for accepting connections
ccept(new AsyncCallback(AcceptCallback),sListener);
e();
eceive(buffer,0,,0,new
AsyncCallback(ReceiveCallback),handler);
e();


发布评论