Version: 2018.2
public static Networking.NetworkEventType Receive (out int hostId, out int connectionId, out int channelId, byte[] buffer, int bufferSize, out int receivedSize, out byte error);

Parameters

hostIdHost ID associated with the event.
connectionIdThe connectionID that received the event.
channelIdThe channel ID associated with the event.
bufferThe buffer that will hold the data received.
bufferSizeSize of the buffer supplied.
receivedSizeThe actual receive size of the data.
errorError (can be cast to NetworkError for more information).

Returns

NetworkEventType Type of event returned.

Description

Called to poll the underlying system for events.

using UnityEngine;
using UnityEngine.Networking;

public class ConnectExample : MonoBehaviour { int connectionId; int channelId; int hostId;

void Start() { // Init Transport using default values. NetworkTransport.Init();

// Create a connection config and add a Channel. ConnectionConfig config = new ConnectionConfig(); channelId = config.AddChannel(QosType.Reliable);

// Create a topology based on the connection config. HostTopology topology = new HostTopology(config, 10);

// Create a host based on the topology we just created, and bind the socket to port 12345. hostId = NetworkTransport.AddHost(topology, 12345);

// Connect to the host with IP 10.0.0.42 and port 54321 byte error; connectionId = NetworkTransport.Connect(hostId, "10.0.0.42", 54321, 0, out error); }

void Update() { int outHostId; int outConnectionId; int outChannelId;

int receivedSize; byte error; byte[] buffer = new byte[256]; NetworkEventType evt = NetworkTransport.Receive(out outHostId, out outConnectionId, out outChannelId, buffer, buffer.Length, out receivedSize, out error);

switch (evt) { case NetworkEventType.ConnectEvent: { OnConnect(outHostId, outConnectionId, (NetworkError)error); break; } case NetworkEventType.DisconnectEvent: { OnDisconnect(outHostId, outConnectionId, (NetworkError)error); break; } case NetworkEventType.DataEvent: { OnData(outHostId, outConnectionId, outChannelId, buffer, receivedSize, (NetworkError)error); break; } case NetworkEventType.BroadcastEvent: { OnBroadcast(outHostId, buffer, receivedSize, (NetworkError)error); break; } case NetworkEventType.Nothing: break;

default: Debug.LogError("Unknown network message type received: " + evt); break; } }

void OnConnect(int hostId, int connectionId, NetworkError error) { Debug.Log("OnConnect(hostId = " + hostId + ", connectionId = " + connectionId + ", error = " + error.ToString() + ")"); }

void OnDisconnect(int hostId, int connectionId, NetworkError error) { Debug.Log("OnDisconnect(hostId = " + hostId + ", connectionId = " + connectionId + ", error = " + error.ToString() + ")"); }

void OnBroadcast(int hostId, byte[] data, int size, NetworkError error) { Debug.Log("OnBroadcast(hostId = " + hostId + ", data = " + data + ", size = " + size + ", error = " + error.ToString() + ")"); }

void OnData(int hostId, int connectionId, int channelId, byte[] data, int size, NetworkError error) { Debug.Log("OnDisconnect(hostId = " + hostId + ", connectionId = " + connectionId + ", channelId = " + channelId + ", data = " + data + ", size = " + size + ", error = " + error.ToString() + ")"); } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961