none
Socket发送问题

    问题

  •         public void StartListening()
            {
                IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse(_ipAddr), _port);
                listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                try
                {
                    listener.Bind(localEndPoint);
                    listener.Listen(100);
                    while (!disposedValue)
                    {
                        Signal.Reset();
                        listener.BeginAccept(new AsyncCallback(AcceptCallback), listener);
                        Signal.WaitOne();
                    }
                }
                catch (Exception ) {}
            }

            private void AcceptCallback(IAsyncResult ar)
            {
                byte[] buffer = new byte[1024];
                Socket listener = (Socket)ar.AsyncState;
                Socket handler = null;

                try
                {
                    handler = listener.EndAccept(ar);
                    buffer = Encoding.Unicode.GetBytes("Hello!");
                    handler.Send(buffer, 0, 1024, 0);

                }
                catch (Exception ) {}   

                finally
                {
                    if (Signal != null)
                    {
                        Signal.Set();
                    }
                }

    为什么执行到handler.Send(buffer, 0, 1024, 0);的时候会触发异常,提示“显示指定的参数已超出有效值的范围。\r\n参数名: size” ?

    2016年2月19日 5:44

答案

全部回复