Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Net;
- using System.Net.Sockets;
- using System.Text;
- const string LISTEN_IP_STRING = "127.0.0.1";
- const int LISTEN_PORT = 14092;
- TcpListener server = new(IPAddress.Parse(LISTEN_IP_STRING), LISTEN_PORT);
- List<TcpClient> users = new();
- List<EndPoint?> usersEndpoints = new();
- try
- {
- Console.WriteLine("Initializing Building Multiplayer server...");
- server.Start();
- Console.WriteLine("Starting listening at {0}:{1}...", LISTEN_IP_STRING, LISTEN_PORT);
- Console.WriteLine("Press Ctrl+C to stop server");
- while (true)
- {
- if (server.Pending())
- {
- TcpClient user = server.AcceptTcpClient();
- user.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
- users.Add(user);
- usersEndpoints.Add(user.Client.LocalEndPoint);
- Console.WriteLine("{0} have been connected!", user.Client.RemoteEndPoint);
- }
- foreach (var user in users)
- {
- NetworkStream str = null;
- //try
- //{
- str = user.GetStream();
- byte[] bytes = new byte[256];
- str.Read(bytes, 0, bytes.Length);
- string dat = Encoding.UTF8.GetString(bytes);
- if (dat.StartsWith("set"))
- Console.WriteLine("{0} changed block", user.Client.LocalEndPoint);
- foreach (var user2 in users)
- {
- NetworkStream str2 = user2.GetStream();
- str2.Write(bytes, 0, bytes.Length);
- str2.Close();
- }
- str.Close();
- //}
- //catch (ObjectDisposedException)
- //{
- // Console.WriteLine("{0} have been disconnected!", usersEndpoints[users.IndexOf(user)]);
- // usersEndpoints.RemoveAt(users.IndexOf(user));
- // users.Remove(user);
- // break;
- //}
- //catch (InvalidOperationException)
- //{
- // Console.WriteLine("{0} have been disconnected!", usersEndpoints[users.IndexOf(user)]);
- // usersEndpoints.RemoveAt(users.IndexOf(user));
- // users.Remove(user);
- // break;
- //}
- //finally
- //{
- // if (str != null)
- // str.Close();
- //}
- }
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.ToString());
- }
- finally
- {
- Console.WriteLine("Stopping server...");
- server.Stop();
- }
Advertisement
Add Comment
Please, Sign In to add comment