Esempio n. 1
0
    void Start()
    {
        byte[] recv = new byte[16 * 1024];

        connector = new TcpConnector("192.168.31.236", 8888);
        connector.On(SocketEvents.Message, (d) =>
        {
            byte[] reData = d as byte[];
            Debug.LogError(reData.Length);
            unpacker.Input(reData);
            int length;
            ushort msgId;
            while (unpacker.MoveNext(recv, out length, out msgId))
            {
                LoginS2C lmsg = ProtobufTool.BytesToProtoBuf <LoginS2C>(recv, 0, length);
                Debug.LogError("recv msgID: " + msgId + " data:" + lmsg.playerId);
            }
        });
        var wait = connector.Connect();

        if (!Util.Wait(wait, 1000))
        {
            connector.Dispose();
        }
    }
Esempio n. 2
0
        private bool TryConnect()
        {
            Socket socket = connector.Connect();

            if (socket != null)
            {
                lastId++;
                Tcp    tcp    = new Tcp(socket);
                Player player = new Player(lastId, tcp, shipsInfo, projectilesController);
                player.CreateShip();
                CreateShipActionData[] data = new CreateShipActionData[bots.Count + players.Count + 1];
                data[0] = player.GetCreateShipActionData();
                structConverter.ConvertStructToBytes(data[0], DataType.CreateShipAction, out byte[] bytes);
                foreach (Player pl in players)
                {
                    pl.SendTcpData(bytes);
                }
                for (int i = 0; i < players.Count; i++)
                {
                    data[i + 1] = players[i].GetCreateShipActionData();
                }
                players.Add(player);
                for (int i = 0; i < bots.Count; i++)
                {
                    data[i + players.Count] = bots[i].GetCreateShipActionData();
                }
                structConverter.ConvertStructsToBytes(data, DataType.CreateShipAction, out bytes);
                player.SendTcpData(bytes);
                return(true);
            }
            return(false);
        }
Esempio n. 3
0
    internal void StartClient(string address, int port)
    {
        var connector = new TcpConnector(address, port);

        connector.OnConnected += Connector_OnConnected;
        connector.Connect();
        StartCoroutine(connector.WaitFor());
    }
Esempio n. 4
0
        public void TestDoubleConnect()
        {
            var connector = new TcpConnector("127.0.0.1", 7777);

            connector.Connect();

            var isThrow = false;

            try
            {
                connector.Connect();
            }
            catch (RuntimeException)
            {
                isThrow = true;
            }
            Assert.AreEqual(true, isThrow);
        }
Esempio n. 5
0
        public void SetServer(IList <NtIPAddress> servers)
        {
            List <Connector> connectors = new List <Connector>();

            foreach (var server in servers)
            {
                connectors.Add(() => TcpConnector.Connect(server.IpAddress, server.Port, Logger.Instance, 1));
            }
            SetConnector(connectors);
        }
Esempio n. 6
0
        public void StartClient(IList <NtIPAddress> servers)
        {
            List <Connector> connectors = new List <Connector>();

            foreach (var server in servers)
            {
                connectors.Add(() => TcpConnector.Connect(server.IpAddress, server.Port, 1));
            }
            StartClient(connectors);
        }
Esempio n. 7
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = System.Text.Encoding.UTF8;
            int serverPort = 6891;

            Console.WriteLine("Hello Client!");
            TcpConnector client = new TcpConnector();

            client.Open(TcpConnector.GetAvailablePort(serverPort), 2);
            client.Connect("127.0.0.1", serverPort);

            _wrap = AutoWrapClient.GetProxy(client);
            // Выведем сообщение в консоли сервера
            string typeStr = typeof(Console).AssemblyQualifiedName;
            var    console = _wrap.GetType(typeStr);

            console.WriteLine("Hello from Client");

            var str = string.Empty;

            while (!str.ToLower().Equals("exit"))
            {
                Console.Write("Write text to server: ");
                str = Console.ReadLine();
                console.WriteLine(str);
            }

            var testClass = (_wrap.GetType("ServerRun.TestClass, ServerRun, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"))._new();
            var text      = testClass.Name();

            Console.WriteLine("Текст из клиента + " + text);
            console.WriteLine(text);

            GC.Collect();
            GC.WaitForPendingFinalizers();

            // Удаления из хранилища на стороне сервера происходит пачками по 50 элементов
            // Отрправим оставшиеся
            client.ClearDeletedObject();

            // Отключимся от сервера, закроем все соединения, Tcp/Ip сервер на клиенте
            client.Close();

            Console.Write("Close server? [y][n]: ");
            if (Console.ReadLine().ToLower().Equals("y"))
            {
                client.CloseServer();
            }
            Console.WriteLine("Press any key...");
            Console.ReadKey();
        }
Esempio n. 8
0
        public void SimpleTcpTest()
        {
            var connector = new TcpConnector("127.0.0.1", 7777);

            var data   = new byte[0];
            var server = new TcpTestsServer(b =>
            {
                data = b;
            });

            var reData = new byte[0];

            connector.On(SocketEvents.Message, (d) =>
            {
                reData = d as byte[];
            });

            var wait = connector.Connect();

            if (!Util.Wait(wait, 3000))
            {
                server.Dispose();
                connector.Dispose();
                Assert.Fail("wait faild");
            }

            wait = connector.Send(System.Text.Encoding.Default.GetBytes("hello world"));

            if (!Util.Wait(wait, 3000) ||
                !Util.Wait(ref data, 3000) ||
                !Util.Wait(ref reData, 3000))
            {
                server.Dispose();
                connector.Dispose();
                Assert.Fail("wait faild");
            }

            server.Dispose();
            connector.Disconnect();

            Assert.AreEqual("hello world", System.Text.Encoding.Default.GetString(data));
            Assert.AreEqual("hello world", System.Text.Encoding.Default.GetString(reData));
        }
Esempio n. 9
0
        public void TestDnsException()
        {
            var       connector = new TcpConnector("http://123.0.0.1", 7777);
            Exception e         = null;

            connector.On(SocketEvents.Error, (ex) =>
            {
                e = ex as Exception;
            });

            var wait = connector.Connect();

            if (!Util.Wait(wait, 10000))
            {
                connector.Dispose();
                Assert.Fail("wait faild");
            }

            Assert.AreEqual(typeof(SocketException), (wait.Result as Exception).GetType());
        }
Esempio n. 10
0
 public void SetServerOverride(IPAddress address, int port)
 {
     SetConnectorOverride(() => TcpConnector.Connect(address.ToString(), port, Logger.Instance, 1));
 }
Esempio n. 11
0
 public void SetServer(string serverName, int port)
 {
     SetConnector(() => TcpConnector.Connect(serverName, port, Logger.Instance, 1));
 }
Esempio n. 12
0
 public void StartClient(string serverName, int port)
 {
     StartClient(() => TcpConnector.Connect(serverName, port, 1));
 }