Socket的监听的三种方式

 首先要打开监听

            Listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
            IPEndPoint hostEntry = new IPEndPoint(getLocalmachineIPAddress(), ServerPort);
            Listener.Bind(hostEntry);
            Listener.Listen(ConnectionsQueueLength);

  

1. AcceptAsync异步方式

            socketEventArg = new SocketAsyncEventArgs();
            socketEventArg.Completed += new EventHandler<SocketAsyncEventArgs>(SocketEventArg_Completed);
            socketEventArg.RemoteEndPoint = hostEntry;
            socketEventArg.UserToken = Listener;
            Listener.AcceptAsync(socketEventArg);

  

        void SocketEventArg_Completed(object sender, SocketAsyncEventArgs e)
        {
            if (e.LastOperation == SocketAsyncOperation.Accept)
            {
                Socket acceptSocket = e.AcceptSocket;

                if (acceptSocket != null)
                {
                     // 处理方法
                }
            }

            e.AcceptSocket = null;
            Listener.AcceptAsync(e);

        }

  

 

2. Accept方式 

            while (true)
            {
                Socket acceptSocket = Listener.Accept();

                if (acceptSocket != null)
                {
                    // 处理代码
                }
            }

  

 3. BeginAccept方式

            while (true)
            {
                Listener.BeginAccept(new AsyncCallback(AcceptCallBack), Listener);
            }
 
        private void AcceptCallBack(IAsyncResult result)
        {
            Socket acceptSocket = (Socket)result.AsyncState;
            // 处理方法
        }

  

 

 

 

 

转载于:https://www.cnblogs.com/pctzhang/archive/2012/02/02/2335324.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值