コード例 #1
0
 public override bool Send(string data = "")
 {
     if (data == "")
     {
         return(false);
     }
     try
     {
         if (LinkStatus)
         {
             byte[] databytes = Encoding.UTF8.GetBytes(data);
             Console.Error.WriteLine("Data is sending to {0}:{1}", UDPClient.Address, UDPClient.Port);
             UDPService.Send(databytes, databytes.Length, UDPClient);
         }
         else
         {
             Console.Error.WriteLine("The UDP service is not linked.");
         }
         return(true);
     }
     catch (Exception e)
     {
         Console.Error.WriteLine("UDP Service Exception on Send: " + e.Message + e.StackTrace);
         return(false);
     }
 }
コード例 #2
0
 public override void Stop()
 {
     // Stop listening for new clients.
     //if (LinkStatus)
     //{
     //    Console.Error.WriteLine("Closing the UDP linking.");
     //    UDPClient.Close();
     //}
     Console.Error.WriteLine("Stopping the UDP linking service.");
     UDPService.Close();
     Status     = false;
     LinkStatus = false;
 }
コード例 #3
0
        private void btn_start_Click(object sender, EventArgs e)
        {
            if (tB_myport.Enabled == false)
            {
                if (rB_tcp.Checked)
                {
                    if (tServer == null)
                    {
                        tServer = new TServer(TcpGetDataArrived);
                    }
                    tServer.ServerStartListen(comboBox1.Text, Convert.ToInt16(tB_myport.Text));

                    btn_start.Enabled = false;
                    btn_close.Enabled = true;
                    gB_mode.Enabled   = false;
                    btn_check.Enabled = false;

                    //textBox1.Enabled = true;
                }
                else if (rB_udp.Checked)
                {
                    if (uServer == null)
                    {
                        uServer = new UDPService(UdpGetDataArrived);
                    }
                    uServer.PrepareClient(Convert.ToInt16(tB_myport.Text));

                    btn_start.Enabled = false;
                    btn_close.Enabled = true;
                    gB_mode.Enabled   = false;
                    btn_check.Enabled = false;

                    //textBox1.Enabled = true;
                }
                else
                {
                    MessageBox.Show("Please Select Mode.");
                }
            }
            else if (tB_myport.Enabled == true)
            {
                MessageBox.Show("Please Select Port.");
            }
        }
コード例 #4
0
ファイル: UDPServices.cs プロジェクト: Mu-L/UnityCsReference
 static UDPService()
 {
     k_Instance = new UDPService();
 }
コード例 #5
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            //UdpClient udpClient = new UdpClient("127.0.0.1", 10086);



            //EndPoint point = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 10086);
            //Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            //socket.Bind(point);
            ////socket.Listen(10);
            //while (true)
            //{
            //    Socket connectSocket = socket.Accept();
            //    if (connectSocket != null)
            //    {
            //        Console.WriteLine("connected:" + connectSocket.LocalEndPoint.ToString());
            //        GetMessage(connectSocket);


            //    }
            //}



            //Message message = new Message();
            //message.Id = 1;
            //message.Handler = "dddd";
            //message.AddParam("fox");



            //int length = CodedOutputStream.ComputeMessageSize(message);
            //byte[] bytes = new byte[length];
            //CodedOutputStream cos = new CodedOutputStream(bytes);
            //cos.WriteMessage(message);


            //Type tm = message.GetType();

            //Console.WriteLine(tm);



            //Type t = Message.GetTypeByName(tm.FullName);


            //Console.WriteLine(t + "    " + typeof(IMessage).IsAssignableFrom(t));

            //CodedInputStream cis = new CodedInputStream(bytes);


            //object obj = Activator.CreateInstance(t);



            //cis.ReadMessage((IMessage)obj);
            //Console.WriteLine(obj);


            MessageQueue messageQueue = new MessageQueue(100, 100);

            messageQueue.Start();


            // TCPService service = new TCPService("127.0.0.1", 10086);


            UDPService service = new UDPService("127.0.0.1", 10086);

            service.receiveMsg = (ISession session, byte[] bytes) =>
            {
                Message m = Message.Parser.ParseFrom(bytes);

                MessageHandler mh = new MessageHandler(session, m);
                messageQueue.Add(mh);

                Message mm = m.Clone();
                mm.Handler = "收到:" + ((UDPSession)session).iPEnd;


                session.Send(mm);
                ////MyMessage m = new MyMessage();
                ////m.Read(bytes);

                //string ss = Encoding.Default.GetString(m.Param[0].ToByteArray());

                //Console.WriteLine("session:" + session.SessionId + "message:" + m.ToString() + " param:" + m.Param.Count);
                //Console.WriteLine(ss);
            };

            service.Start();


            while (true)
            {
                Console.ReadKey();
            }
        }