示例#1
0
 public void DirectConnection()
 {
     Netplay.ListenPort = _port;
     Netplay.SetRemoteIP("127.0.0.1");
     Netplay.Connection.Socket.Close();
     Netplay.StartTcpClient();
 }
示例#2
0
        public static void LoadWorld(On.Terraria.IO.WorldFile.orig_loadWorld orig, bool loadFromCloud)
        {
            int startingPort;

            ChatServer.instance.Load();
            if (Main.netMode == 0)
            {
                startingPort = 7777;
                StartServer(ref startingPort, false);
                Main.netMode = 1;
                Netplay.SetRemoteIP("127.0.0.1");
                Netplay.ListenPort = 7777;
                Netplay.Connection.Socket.Close();
                Netplay.StartTcpClient();
            }
            else if (Main.netMode == 2)
            {
                orig.Invoke(loadFromCloud);
                if (Netplay.ListenPort == 7777 && Program.LaunchParameters.ContainsKey("FromHost"))
                {
                    startingPort = 7778;
                    StartServer(ref startingPort, true);
                }

                if (Program.LaunchParameters.ContainsKey("-port"))
                {
                    Netplay.ListenPort = Int32.Parse(Program.LaunchParameters["-port"]);
                }
                Dimlibs.Instance.Logger.Info(Netplay.ListenPort);
                Dimlibs.dimensionInstanceHandlers[Dimlibs.dimension].handler.Load();
            }
        }
示例#3
0
 /// <summary>
 /// Connects the current machine to a server to begin a game. Meant to be called from the main menu.
 /// </summary>
 /// <param name="ip"></param>
 /// <param name="port"></param>
 public static void JoinServer(string ip, int port)
 {
     Main.autoPass      = false;
     Netplay.ListenPort = port;
     Main.getIP         = ip;
     Main.defaultIP     = ip;
     if (Netplay.SetRemoteIP(ip))
     {
         Main.menuMode = 10;
         Netplay.StartTcpClient();
     }
 }
 private void SaveAndConnectClick(UIMouseEvent evt, UIElement listeningElement)
 {
     SaveServer();
     Main.autoPass      = false;
     Netplay.ListenPort = BetterServerList.ActiveServer.Port;
     Main.getIP         = BetterServerList.ActiveServer.Address;
     if (Netplay.SetRemoteIP(Main.getIP))
     {
         Main.menuMode = 10;
         Netplay.StartTcpClient();
     }
 }
示例#5
0
        public void Load()
        {
            //Dimlibs.Instance.Logger.Info("Is chat socket open? " + IsChatOpen());

            Dimlibs.Instance.Logger.Info("Chat is initializing");

            try
            {
                if (!Program.LaunchParameters.ContainsKey("-chat"))
                {
                    TcpListener listener = new TcpListener(IPAddress.Any, _port);
                    listener.Start();
                    ThreadPool.QueueUserWorkItem(InitializeChatRelay, listener);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            while (true)
            {
                if (_socket != null && _socket.IsConnected())
                {
                    break;
                }
            }



            if (Main.netMode == 2)
            {
                On.Terraria.Net.NetManager.SendToServer += NetManagerOnSendToServer;
                _socket = new TcpSocket();
                Netplay.SetRemoteIP("127.0.0.1");
                _socket.Connect(new Terraria.Net.TcpAddress(Netplay.ServerIP, _port));
                connection            = new RemoteServer();
                connection.Socket     = _socket;
                connection.ReadBuffer = new byte[ushort.MaxValue];
            }
            else
            {
                On.Terraria.Net.NetManager.SendToClient += NetManagerOnSendToClient;
                _socket = new TcpSocket();
                Netplay.SetRemoteIP("127.0.0.1");
                _socket.Connect(new Terraria.Net.TcpAddress(Netplay.ServerIP, _port));
                connection            = new RemoteServer();
                connection.Socket     = _socket;
                connection.ReadBuffer = new byte[ushort.MaxValue];
            }

            Dimlibs.Instance.Logger.Info("Chat is initialized and ready to go");
        }