Esempio n. 1
0
 public void Send(byte[] data, int size)
 {
     m_transport.Send(data, size);
 }
Esempio n. 2
0
    void ChattingGUI()
    {
        Rect commentRect = new Rect(10, 250, 100, 30);

        m_sendComment = GUI.TextField(commentRect, m_sendComment, 15);

        bool isSent = GUI.Button(new Rect(110, 250, 100, 30), "말하기");

        if (Event.current.isKey &&
            Event.current.keyCode == KeyCode.Return)
        {
            if (m_sendComment == m_prevComment)
            {
                isSent        = true;
                m_prevComment = "";
            }
            else
            {
                m_prevComment = m_sendComment;
            }
        }

        if (isSent == true)
        {
            string message = "[" + DateTime.Now.ToString("HH:mm:ss") + "] " + m_sendComment;
            byte[] buffer  = System.Text.Encoding.UTF8.GetBytes(message);
            m_transport.Send(buffer, buffer.Length);
            AddMessage(ref m_message[(m_isServer == true)? 0 : 1], message);
            m_sendComment = "";
        }
        if (serv == 1)
        {
            if (GUI.Button(new Rect(110, 280, 100, 30), " 게임시작"))
            {
                //m_state = ChatState.LEAVE;
                Network.InitializeServer(2, m_port, false);
            }
        }
        if (cli == 1)
        {
            if (GUI.Button(new Rect(110, 280, 100, 30), " 게임참가"))
            {
                Network.Connect(m_hostAddress, m_port);
            }
        }



        if (exit == 0)
        {
            if (GUI.Button(new Rect(120, 360, 80, 30), "나가기"))
            {
                m_state = ChatState.LEAVE;
            }
        }

        // 서버 메지 표시.
        if (m_transport.IsServer() ||
            m_transport.IsServer() == false && m_transport.IsConnected())
        {
            DispBalloon(ref m_message[0], new Vector2(180.0f, 200.0f), new Vector2(340.0f, 360.0f), Color.cyan, true);
        }

        if (m_transport.IsServer() == false ||
            m_transport.IsServer() && m_transport.IsConnected())
        {
            //클라이언트가 말하는 메시지 표시.
            DispBalloon(ref m_message[1], new Vector2(300.0f, 200.0f), new Vector2(340.0f, 360.0f), Color.green, false);
        }
    }
Esempio n. 3
0
    // Update is called once per frame
    void Update()
    {
#if USE_TRANSPORT_TCP
        if (m_transport != null && m_transport.IsConnected() == true)
        {
#else
        if (m_transport != null)
        {
#endif
            byte[] buffer   = new byte[m_mtu];
            int    recvSize = m_transport.Receive(ref buffer, buffer.Length);
            if (recvSize > 0)
            {
                string message = System.Text.Encoding.UTF8.GetString(buffer);
                Debug.Log(message);
            }
        }
    }

    void OnGUI()
    {
        if (isSelected == false)
        {
            OnGUISelectHost();
        }
        else
        {
            if (m_transport.IsServer() == true)
            {
                OnGUIServer();
            }
            else
            {
                OnGUIClient();
            }
        }
    }

    void OnGUISelectHost()
    {
#if USE_TRANSPORT_TCP
        if (GUI.Button(new Rect(20, 40, 150, 20), "Launch server."))
        {
#else
        if (GUI.Button(new Rect(20, 40, 150, 20), "Launch Listener."))
        {
#endif
            m_transport.StartServer(m_port, 1);
            isSelected = true;
        }

        // 클라이언트를 선택했을 때 접속할 서버 주소를 입력합니다.
        m_strings = GUI.TextField(new Rect(20, 100, 200, 20), m_strings);
#if USE_TRANSPORT_TCP
        if (GUI.Button(new Rect(20, 70, 150, 20), "Connect to server"))
        {
#else
        if (GUI.Button(new Rect(20, 70, 150, 20), "Connect to terminal"))
        {
#endif
            m_transport.Connect(m_strings, m_port);
            isSelected = true;
            m_strings  = "";
        }
    }

    void OnGUIServer()
    {
#if USE_TRANSPORT_TCP
        if (GUI.Button(new Rect(20, 60, 150, 20), "Stop server"))
        {
#else
        if (GUI.Button(new Rect(20, 60, 150, 20), "Stop Listener"))
        {
#endif
            m_transport.StopServer();
            isSelected = false;
            m_strings  = "";
        }
    }

    void OnGUIClient()
    {
        // 클라이언트를 선택했을 때 접속할 서버의 주소를 입력합니다.
        if (GUI.Button(new Rect(20, 70, 150, 20), "Send message"))
        {
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes("Hellow, this is client.");
            m_transport.Send(buffer, buffer.Length);
        }

        if (GUI.Button(new Rect(20, 100, 150, 20), "Disconnect"))
        {
            m_transport.Disconnect();
            isSelected = false;
            m_strings  = "";
        }
    }
}