public void Send(byte[] data, int size) { m_transport.Send(data, size); }
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); } }
// 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 = ""; } } }