Version: 2017.3
public static int Connect (int hostId, string address, int port, int exeptionConnectionId, out byte error);

パラメーター

hostId Host ID associated with this connection (retrieved when calling NetworkTransport.AddHost).
address IPv4 address of the other peer.
port Port of the other peer.
exceptionConnectionId Set to 0 in the case of a default connection.
error Error (can be cast to NetworkError for more information).

戻り値

int A unique connection identifier on success (otherwise zero).

説明

Tries to establish a connection to another peer.

The error parameter will return a non-zero value if an error occurs, this value can be cast to a NetworkError for more information.

NetworkTransport.Connect can still fail despite returning a non-zero connection id, so make sure to poll NetworkTransport.Receive or NetworkTransport.ReceiveFromHost to listen for events. If everything is OK a NetworkEventType.ConnectEvent will be returned.

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; byte[] buffer = new byte[1024]; int bufferSize = 1024; int receiveSize; byte error;

NetworkEventType evnt = NetworkTransport.Receive(out outHostId, out outConnectionId, out outChannelId, buffer, bufferSize, out receiveSize, out error); switch (evnt) { case NetworkEventType.ConnectEvent: if (outHostId == hostId && outConnectionId == connectionId && (NetworkError)error == NetworkError.Ok) { Debug.Log("Connected"); } break; case NetworkEventType.DisconnectEvent: if (outHostId == hostId && outConnectionId == connectionId) { Debug.Log("Connected, error:" + error.ToString()); } break; } } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961