public static void Connect(string ip, int port, params object[] data) { Peer = new NetClient(DefaultConfiguration); Peer.Start(); var hailMessage = Peer.CreateMessage(); foreach (var o in data) { hailMessage.Write(o); } Peer.Connect(ip, port, hailMessage); }
private static void DoInit() { if (IsHost) { NetPeerConfiguration config = new NetPeerConfiguration("MonoPlatformerGame"); config.Port = DataStorage.GetLocalPlayerConfig().ServerPort; config.MaximumConnections = 32; config.EnableMessageType(NetIncomingMessageType.ConnectionApproval); config.EnableUPnP = true; netPeer = new NetServer(config); netPeer.Start(); netPeer.UPnP.ForwardPort(DataStorage.GetLocalPlayerConfig().ServerPort, "Server port"); JapeLog.WriteLine("Server Started"); Initialized = true; } else { NetPeerConfiguration config = new NetPeerConfiguration("MonoPlatformerGame"); config.EnableMessageType(NetIncomingMessageType.ConnectionApproval); netPeer = new NetClient(config); NetOutgoingMessage hailMessage = CreateMessage(); hailMessage.Write((int)DataType.Login); hailMessage.Write("Hello there"); netPeer.Start(); netPeer.Connect(DataStorage.GetLocalPlayerConfig().ServerIP, DataStorage.GetLocalPlayerConfig().ServerPort, hailMessage); Initialized = true; } //JapeLog.WriteLine("Connected to Server"); }
/// <summary> /// Подключение к P2P сервису. Для создания UDP окна. /// </summary> /// <param name="remotePoint">Адрес сервиса.</param> internal void ConnectToService(IPEndPoint remotePoint) { ThrowIfDisposed(); if (Interlocked.CompareExchange(ref state, (int)PeerState.ConnectedToService, (int)PeerState.NotConnected) != (int)PeerState.NotConnected) throw new InvalidOperationException("Peer has not right state."); if (handler != null && handler.Status == NetPeerStatus.Running) throw new ArgumentException("Already runned."); var config = new NetPeerConfiguration(NetConfigString); config.Port = 0; config.AcceptIncomingConnections = true; config.EnableMessageType(NetIncomingMessageType.ConnectionApproval); if (remotePoint.AddressFamily == AddressFamily.InterNetworkV6) config.LocalAddress = IPAddress.IPv6Any; handler = new NetPeer(config); syncContext.Send(p => ((NetPeer)p).RegisterReceivedCallback(ReceivedCallback), handler); handler.Start(); var hailMessage = handler.CreateMessage(); using (var client = ClientModel.Get()) { var localPoint = new IPEndPoint(Connection.GetIPAddress(remotePoint.AddressFamily), handler.Port); hailMessage.Write(client.User.Nick); hailMessage.Write(localPoint); } serviceConnection = handler.Connect(remotePoint, hailMessage); ClientModel.Logger.WriteDebug("AsyncPeer.ConnectToService({0})", remotePoint); }
public void Connect(IPEndPoint target) { _logger.ConnectingTo(target); _peer.Connect(target); }
public void Connect(IPEndPoint target) { _peer.Connect(target); }