public bool ConnectTo( string serverIP, int serverPort, int clientPort, NetworkingCommon.ConnectArgs connArgs = NetworkingCommon.ConnectArgs.DirectConnectRequest, string roomName = "Default", string userName = "******" ) { Debug.Log("Attempting to create udp socket. ServerIP = " + serverIP + " Server port = " + serverPort + " Client port =" + clientPort); try { endPoint = new IPEndPoint(IPAddress.Parse(serverIP), serverPort); Debug.Log("endpoint address family : " + endPoint.AddressFamily.ToString()); socket = new UdpClient(clientPort); socket.Connect(endPoint); socket.BeginReceive(ReceiveCallback, null); SendConnectRequest(connArgs, roomName, userName); return(true); } catch (SocketException e) { string message = "Failed to create udp socket\n" + e.ToString(); MultiplayerGUI.ErrorMessageText.text = message; Debug.Log(message); return(false); } }
public void SendConnectRequest( NetworkingCommon.ConnectArgs connArgs, string roomName, string userName ) { // Attempt to begin the connection // #POSSIBLE_PROBLEM // We may want to continuously send this until we get responce, since we can never trust udp to arrive.. byte[] userName_raw = Encoding.ASCII.GetBytes(userName); byte[] roomName_raw = Encoding.ASCII.GetBytes(roomName); ByteBuffer namesCombined = new ByteBuffer(); namesCombined.Add(new byte[] { (byte)roomName_raw.Length }); namesCombined.Add(roomName_raw); namesCombined.Add(new byte[] { (byte)userName_raw.Length }); namesCombined.Add(userName_raw); // By default we ask for directly connecting.. //Package package = new Package(1, 0, NetworkingCommon.MESSAGE_TYPE__ConnectRequest, (ushort)userName.Length, userName_raw); Package package = new Package(0, 0, NetworkingCommon.Convert_ConnArgs_To_Byte(connArgs), (ushort)namesCombined.Bytes.Length, namesCombined.Bytes); SendData(package.Buffer.Bytes); }
private void StoreConnectProperties(NetworkingCommon.ConnectArgs connectArgs) { string serverIP = inputField_serverIP.text; string serverPort_str = inputField_serverPort.text.ToString(); string clientPort_str = inputField_clientPort.text.ToString(); string userName = inputField_userName.text.ToString(); string roomName = inputField_roomName.text.ToString(); if (serverIP.Length <= 0) { serverIP = inputField_serverIP.placeholder.gameObject.GetComponent <Text>().text; } if (serverPort_str.Length <= 0) { serverPort_str = inputField_serverPort.placeholder.gameObject.GetComponent <Text>().text; } if (clientPort_str.Length <= 0) { clientPort_str = inputField_clientPort.placeholder.gameObject.GetComponent <Text>().text; } if (userName.Length <= 0) { userName = inputField_userName.placeholder.gameObject.GetComponent <Text>().text; } if (roomName.Length <= 0) { roomName = inputField_roomName.placeholder.gameObject.GetComponent <Text>().text; } int serverPort = Int32.Parse(serverPort_str); int clientPort = Int32.Parse(clientPort_str); connectProperties.serverIP = serverIP; connectProperties.serverPort = serverPort; connectProperties.clientPort = clientPort; connectProperties.userName = userName; connectProperties.roomName = roomName; connectProperties.connectArgs = connectArgs; }