유니티 네트워크 (Unity Network)

- NetworkManager를 이용한 방법과 제한사항(대용량 전송불가)은 동일하게 발생한다.

- Server

using UnityEngine;
using UnityEngine.Networking;

public class NetServ : MonoBehaviour {

void Start () {
        NetworkServer.RegisterHandler(MsgType.Connect, OnConnected);
        NetworkServer.RegisterHandler(MsgType.Highest+1, OnMessage);
        NetworkServer.Listen(4455);
    }

    public void OnConnected(NetworkMessage netMsg)
    {
        Debug.Log("Server Call OnConnected : " + netMsg.ToString());
    }

    public void OnMessage(NetworkMessage netMsg)
    {
        Debug.Log("OnMessage l : " + netMsg.ToString().Length);
        Debug.Log("OnMessage " + netMsg.ToString());
    }
}


-------------------------------------------------------------------------------
- Client

using UnityEngine;
using UnityEngine.Networking;

public class TmpMessage : MessageBase
{
    public string strData;
}

public class NetClient : MonoBehaviour {

    NetworkClient netClient;

void Start () {

        netClient = new NetworkClient();
        netClient.RegisterHandler(MsgType.Connect, OnConnected);
        netClient.Connect("localhost", 4455);

    }

// Update is called once per frame
void Update () {

        /*
         Failed to send big message of 14733 bytes. The maximum is 1400 bytes on this channel.
UnityEngine.Networking.NetworkClient:Send(Int16, MessageBase)
         */
        if (Input.GetKeyUp(KeyCode.A))
        {
            //netClient.SendBytes
            TmpMessage msg = new TmpMessage();
            msg.strData = "asdflkjsdfijslajf;asj;fjsdf";
            for(int i=0; i<100; ++i)
            {
                msg.strData += "lsdjflkjsldfjlksdjfkjsklfjksjflksjfljs;lfjs;afjsjf;sjfl;jslfjs;lfjl;sjfl;sjf;jsl;fjasldjfsajfjslkdfjdkjfkdjsfkjdkfjsdkfjdskjfoijfdjfklsjdfjdslfjsdf";
            }
            Debug.Log("Send str length : " + msg.strData.Length);
            //netClient.Send(MsgType.Highest+1, msg);

            byte[] byteData = System.Text.Encoding.UTF8.GetBytes(msg.strData);
            netClient.SendBytes(byteData, byteData.Length, 0);
        }
    }

    public void OnConnected(NetworkMessage netMsg)
    {
        Debug.Log("Client Call OnConnected : " + netMsg.ToString());
    }
}

댓글

이 블로그의 인기 게시물

유니티 텍스쳐 생성 (Unity Texture Create from bytes)

유니티 네트워크 (Unity NetworkManager Component)

유니티 네트워크 (Unity Socket)