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; } } }