解决方案 »

  1.   

    是不是被占用了 你试用不同的SocketAsyncEventArgs对象试试
      

  2.   

    从来不自己写 有人写完的封装好的SocketAsyncEventArgs我一般都直接拿来用..很不错..Server server;
            Dictionary<string, Socket> Client = new Dictionary<string, Socket>();
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    server = new Server(textBox1.Text, int.Parse(textBox2.Text), 100, 1024);
                    server.Connection = new BeginConnection(Con);
                    server.Receive = new BeginReceive(Rec);
                    server.Close = new BeginClose(Clo);
                    server.Start();
                    Write("已监听");
                }
                catch (Exception ex)
                {
                    Write(ex.Message);
                }
            }
            bool Con(SocketAsyncEventArgs ar)
            {
                var m = SuperSocket.SocketHelper.GetConnectionObject(ar);
                Write(m.Key + "连接");
                AddItem(m.Key);
                Client.Add(m.Key, m.Value);
                ar.UserToken = null;
                return true;
            }
            void Rec(byte[] data, SocketAsyncEventArgs ar)
            {
                var m = SuperSocket.SocketHelper.GetConnectionObject(ar, data);
                Write(m.Key + "发送数据:" + m.DataString);
            }
            void Clo(SocketAsyncEventArgs ar)
            {
                var m = SuperSocket.SocketHelper.GetConnectionObject(ar);
                Write(m.Key + "断开");
                RemoveItem(m.Key);
                ar.UserToken = null;
                ar.AcceptSocket.Shutdown(SocketShutdown.Both);
                ar.AcceptSocket.Close();
                ar.AcceptSocket.Dispose();
            }
      

  3.   

    上下文啊,怎么可以跨域调用,最后把FinishOperationSuccess这个方法及其相关引用的代码贴出来
      

  4.   


    我知道是跨域,我的socket代码比较多就不贴出来了,我只定位到,大概是关闭socket和发送 回调时冲突报的错,因为是异步嘛,我每个链路只分配2个SocketAsyncEventArgs串行来 接收-处理-接收-处理 这样的机制,处理完了再接收。另一个SocketAsyncEventArgs用来发送,  发送和接收都是异步的,链路不知道什么时候会被关闭
      

  5.   

    socket是否new了全局?socket一用一new最好 就不存在冲突了