Advertisement
Guest User

my networking

a guest
Dec 12th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. s = new Socket (AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
  2. s.Bind (new IPEndPoint (IPAddress.Any, port));
  3. while (true) {
  4. now = stopwatch.ElapsedTicks;
  5. deltaTime = (now - lastTime) / (float)Stopwatch.Frequency;
  6. lastTime = now;
  7. time += deltaTime;
  8. if (time > 30 || gameOver) {
  9. SendToAll (new byte[1] { (byte)(waitingForPlayers + 64) });
  10. s.Close ();
  11. return;
  12. }
  13. if (s.Poll (1000, SelectMode.SelectRead)) {
  14. int bytes = s.ReceiveFrom (buffer, ref recvEndpoint);
  15. if (bytes > 48) {
  16. sender = (IPEndPoint)recvEndpoint;
  17. byte[] data = new byte[bytes];
  18. Array.Copy (buffer, data, bytes);
  19. for (byte i = 0; i < 10; i++) {
  20. if (sender.Equals (connections[i])) {
  21. bool duplicate = false;
  22. foreach (IPEndPoint ip in team1Connections) {
  23. if (ip.Equals (sender)) {
  24. duplicate = true;
  25. break;
  26. }
  27. }
  28. if (duplicate)
  29. break;
  30. foreach (IPEndPoint ip in team2Connections) {
  31. if (ip.Equals (sender)) {
  32. duplicate = true;
  33. break;
  34. }
  35. }
  36. if (duplicate)
  37. break;
  38. s.SendTo (new byte[1] { (byte)(192 + waitingForPlayers) }, sender);
  39. new Player (this, i, sender, Encoding.ASCII.GetString (data, 55, data.Length - 55), data);
  40. if (i % 2 == 0)
  41. team1Connections.Add (sender);
  42. else
  43. team2Connections.Add (sender);
  44. }
  45. }
  46. }
  47. if (players.Count == maxPlayers)
  48. break;
  49. }
  50. Thread.Sleep (10);
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement