static void Main(string[] args) { UdpSocket s = new UdpSocket(); s.Server("127.0.0.1", 27000); UdpSocket c = new UdpSocket(); c.Client("127.0.0.1", 27000); c.Send("TEST!"); Console.ReadKey(); }
private void Receive() { _socket.BeginReceiveFrom(state.buffer, 0, BufSize, SocketFlags.None, ref _epFrom, _recv = ar => { var so = (State)ar.AsyncState; int bytes = _socket.EndReceiveFrom(ar, ref _epFrom); _socket.BeginReceiveFrom(so.buffer, 0, BufSize, SocketFlags.None, ref _epFrom, _recv, so); var msg = Encoding.ASCII.GetString(so.buffer, 0, bytes); var from = _epFrom.ToString(); /* * Console.WriteLine("RECV: {0}: {1}, {2}", from, bytes, * msg); * Console.WriteLine(); */ ReadMessage(msg, out var id, out var content); switch (id) { case 100: var rx = new Regex(@"[0-9]*", RegexOptions.Compiled | RegexOptions.IgnoreCase); var port = content.Substring(1, content.Length - 1); if (int.TryParse(rx.Match(port).ToString(), out var x)) { if (_client != null) { _client.Stop(); } _clientPort = x; _clientIp = ReadIp(from); //Console.WriteLine(_clientIp+ ":" + _clientPort); _client = new UdpSocket(); _client.Client(_clientIp, _clientPort); _client.Send("Connected"); //Console.WriteLine(_clientIp+ ":" + _clientPort); } else { _clientPort = 0; } break; case 1000: /* received new target position */ if (ReadIp(from) == _clientIp && _clientPort != 0) { ReadTargetPositions(content); _client.Send(Manager.status); } break; case 1001: /* Reset */ if (ReadIp(from) == _clientIp && _clientPort != 0) { _client.Send(Manager.status); } break; case 1002: /* Respawn */ if (ReadIp(from) == _clientIp && _clientPort != 0) { Controller.Respawn(); _client.Send(Manager.status); } break; case 1003: /* Get score */ if (ReadIp(from) == _clientIp && _clientPort != 0) { _client.Send(Controller.GetScore().ToString()); } break; default: Debug.Log("Unknown id"); break; } //Console.WriteLine(); }, state);