Exemplo n.º 1
0
        /**
         * 返回连接的socket
         */
        public judpSocket Accept()
        {
            UDTSocket socket = SocketControls.GetInstance().GetSocket();

            if (socket == null)
            {
                //再次获取下一个
                socket = SocketControls.GetInstance().GetSocket();
            }
            //包装
            judpSocket jsocket = new judpSocket(socket);

            judpSocketManager.GetInstance(socket.GetEndpoint()).AddSocket(jsocket);
            return(jsocket);
        }
Exemplo n.º 2
0
        /**
         * 立即关闭,shutdown取代
         */
        public void Stop()
        {
            //没有发送则可以直接关闭,不需要等待数据发送完成
            try {
                socket.Close();
                UDTSession serversession = socket.GetEndpoint().RemoveSession(socketID);
                if (serversession != null)
                {
                    serversession.Socket.Close();
                    socket.GetReceiver().Stop();
                    socket.GetSender().Stop();
                    Console.WriteLine("物理关闭socket:" + serversession.SocketID);
                }

                serversession = null;
            } catch (IOException e) {
                Console.WriteLine(e);
            }
            Console.WriteLine("物理关闭socket");
        }