永发信息网

c#socket问题

答案:1  悬赏:30  手机版
解决时间 2021-08-18 12:06
  • 提问者网友:难遇难求
  • 2021-08-17 17:49
当我调用stop()的时候TcpSocket = listener.EndAccept(ar);会抛出ObjectDisposedException异常
什么原因,怎么解决
        public void Stop()
        {
            TcpSocket.Close();
            if (base.TcpServers != null)
            {
                base.TcpServers.Close();
            }
        }

        public void Initialize()
        {
            base.TcpServers = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            IPEndPoint address = new IPEndPoint(IPAddress.Any, 37086);
            base.TcpServers.Bind(address);
            base.TcpServers.Listen(10);
            base.TcpServers.BeginAccept(new AsyncCallback(AcceptReceiveCallback), base.TcpServers);
        }

        void AcceptReceiveCallback(IAsyncResult ar)
        {
            Socket listener = (Socket)ar.AsyncState;
            TcpSocket = listener.EndAccept(ar);
            base.TcpServers.BeginAccept(new AsyncCallback(AcceptReceiveCallback), base.TcpServers);
        }
最佳答案
  • 五星知识达人网友:迟山
  • 2021-08-17 18:58
了解一点TCP/IP协议常识的人都知道,互联网是将信息数据打包之后再传送出去的。每个数据包分为头部信息和数据信息两部分。头部信息包括数据包的发送地址和到达地址等。数据信息包括我们在游戏中相关操作的各项信息。那么在做截获封包的过程之前我们先要知道游戏服务器的IP地址和端口号等各种信息,实际上最简单的是看看我们游戏目录下,是否有一个SERVER.INI的配置文件,这个文件里你可以查看到个游戏服务器的IP地址,比如金庸群侠传就是如此,那么除了这个我们还可以在DOS下使用NETSTAT这个命令, NETSTAT命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。或者你可以使用木马客星等工具来查看网络连接。工具是很多的,看你喜欢用哪一种了。 NETSTAT命令的一般格式为:NETSTAT [选项] 命令中各选项的含义如下:-a 显示所有socket,包括正在监听的。-c 每隔1秒就重新显示一遍,直到用户中断它。-i 显示所有网络接口的信息。-n 以网络IP地址代替名称,显示出网络连接情形。-r 显示核心路由表,格式同"route -e"。-t 显示TCP协议的连接情况。-u 显示UDP协议的连接情况。-v 显示正在进行的工作。
aiyy520女装货源 aiyy520女装批发 aiyy520女装代理
 aiyy520女装商城
以上内容由aiyy520.com 女装商城 女装官网提供

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯