小小回忆录 2015-03-20 06:49 采纳率: 0%
浏览 7178

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
        }
    }
  • 写回答

2条回答 默认 最新

  • max_min_ 2015-03-20 10:11
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条