Exemplo n.º 1
0
    // 各クライアント毎に処理するスレッド
    private void ClientStream(TcpClient client)
    {
        Debug.Log($"Accept client({((IPEndPoint)client.Client.RemoteEndPoint).Address}:{((IPEndPoint)client.Client.RemoteEndPoint).Port})と接続しました。");
        client.LingerState = new LingerOption(true, 0);         // 切断時は即切る

        NetIO.Setup();

        // 受信処理作成
        // 本来はクライアント毎に持つべきもの。
        NetIO.Prefix = "server";

        // 開始前コールバック
        NetIO.Begin(client);            // 接続開始

        // テスト送信
//		HvNetIOTest.Send(networkIO);

        //接続されている限り読み続ける
        while (client.Connected && IsBegin)
        {
            Thread.Sleep(3000);
            HvNetIOTest.Send(NetIO);                    // 定期的にテスト送信
        }

        Debug.Log($"server : out loop conedted:{client.Connected} _beginServer:{IsBegin} ");

        // 終了を通知
//		HvNetIOCommand.SendEndCommand(NetIO);
        NetIO.Writer.Flush();
        NetIO.CloseNetwork();
        Thread.Sleep(50);
        NetIO.Dispose();

        Thread.Sleep(100);
    }
Exemplo n.º 2
0
    // クライアント接続テスト
    public async Task TestClient(IPAddress ipaddr, int port)
    {
        await Task.Delay(1000);

        var netIO = new HvNetworkIO();

        try
        {
            Debug.Log("TestClient : -Start TestClient");

            _decoder = netIO.GetResever <HvNetDecoder>();

            netIO.Prefix = "client";

            var client = new TcpClient(ipaddr.ToString(), port);
            netIO.Begin(client);              // 接続開始


            // Test送信
            HvNetIOTest.Send(netIO);

            // クライアント情報送信
            HvNetIOClientInfo.Send(netIO, Quaternion.identity, -1);

            try
            {
                do
                {
                    Thread.Sleep(500);
                } while (netIO.IsConnected && _playClient);
            }
            catch (Exception e)
            {
                Debug.Log($"client error : {e.Message}");
            }


            Debug.Log("TestClient : out loop");
        }
        catch (Exception e)
        {
            Debug.Log(e.Message);
            throw;
        }
        finally
        {
            netIO.CloseNetwork();
            Thread.Sleep(50);
            netIO.Dispose();

            Debug.Log("-End TestClient");
        }
    }