유니티 네트워크 (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());
}
}
- 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());
}
}
댓글
댓글 쓰기