Socket如何实现一个客户端连接多个服务器,用异步通信的方法编写的

private void ReadCallBack(IAsyncResult ar)
{
var state = (StateObject) ar.AsyncState;
if ((state.Client == null) || (!state.Client.Connected))
return;
var networkStream = state.Client.GetStream();

        try
        {
            var number= networkStream.EndRead(ar);
            state.BytesRead += number;
            if (number > 0)
            {
                var by = new byte[number];
                Array.Copy(state.Buffer, 0, by, 0, number);
                Rec(by);//这个是一个处理服务器传回的数据,
                networkStream.BeginRead(state.Buffer, 0, StateObject.BufferSize, ReadCallBack, state);
            }

            else
            {
                networkStream.Close();
                state.Client.Close();
            }



        }
        catch (Exception)
        {
            //_tcp1.Close();
            //_networkStream.Close();

        }
    }


             private void AsynRead(TcpClient tcpClient)
    {
        var state = new StateObject {Client = tcpClient};
        var stream = tcpClient.GetStream();
        if (stream.CanRead)
        {
            try
            {
                var ar = stream.BeginRead(state.Buffer, 0, StateObject.BufferSize, ReadCallBack, state);
            }
            catch (Exception)
            {
                // ignored
            }
        }
    }


             private void ConnectCallBack(IAsyncResult ar)
    {
        AllDone.Set();
        var t = (TcpClient) ar.AsyncState;
        try
        {
            t.EndConnect(ar);
        }
        catch (Exception)
        {
            // ignored
        }
    }

异步操作知道了,连接一个服务器知道了,其他的也这么处理就好了呀!每次连接独立处理就好了~~

但这样很多方法都有重复的啊