public void TestParseFromMessage()
        {
            string correctResult = "TCPConnectTo;TestUser;-1;;;127.0.0.1;12345";

            ExtendedUser exUserToTest = new ExtendedUser(new User("Tom",-1),IPAddress.Parse("192.168.23.1"),1234);
            Message message = new Message("192.168.23.1;1234");
            message.FromUser = new User("Tom", -1);
            message.ToUser = null;
            Assert.AreEqual(exUserToTest.Name, ExtendedUser.ParseFromMessage(message).Name);
            Assert.AreEqual(exUserToTest.Id, ExtendedUser.ParseFromMessage(message).Id);
            Assert.AreEqual(exUserToTest.IpAddress, ExtendedUser.ParseFromMessage(message).IpAddress);
            Assert.AreEqual(exUserToTest.Port, ExtendedUser.ParseFromMessage(message).Port);
            Assert.True(exUserToTest.Equals(exUserToTest));
        }
        public void TestEquals()
        {
            ExtendedUser exUserToTest = new ExtendedUser(new User("Tom", -1), IPAddress.Parse("192.168.23.1"), 1234);
            ExtendedUser exUserEqual = new ExtendedUser(new User("Tom", -1), IPAddress.Parse("192.168.23.1"), 1234);
            ExtendedUser exUserUnequalName = new ExtendedUser(new User("Tomi", -1), IPAddress.Parse("192.168.23.1"), 1234);
            ExtendedUser exUserUnequalId = new ExtendedUser(new User("Tom", 3), IPAddress.Parse("192.168.23.1"), 1234);
            ExtendedUser exUserUnequalIp = new ExtendedUser(new User("Tom", -1), IPAddress.Parse("192.168.26.1"), 1234);
            ExtendedUser exUserUnequalPort = new ExtendedUser(new User("Tom", -1), IPAddress.Parse("192.168.23.1"), 5234);

            Assert.True(exUserToTest.Equals(exUserEqual));
            Assert.False(exUserToTest.Equals(exUserUnequalName));
            Assert.False(exUserToTest.Equals(exUserUnequalId));
            Assert.True(exUserToTest.Equals(exUserUnequalIp));
            Assert.True(exUserToTest.Equals(exUserUnequalPort));
        }
Example #3
0
 /// <summary>
 /// Generates a message out of an extendedUser of a connect message
 /// </summary>
 /// <param name="message"></param>
 /// <returns></returns>
 public static string GenerateConnectMessage(ExtendedUser exUser)
 {
     return GenerateConnectMessage(exUser, exUser.IpAddress, exUser.Port);
 }
Example #4
0
 /// <summary>
 /// Checks if username and id are equal
 /// </summary>
 /// <param name="user"></param>
 /// <returns></returns>
 public bool Equals(ExtendedUser user)
 {
     return base.Equals(user);
 }
Example #5
0
 /// <summary>
 /// Creates an extendedUser out of the configuration information
 /// </summary>
 /// <returns></returns>
 public static ExtendedUser ConfigurationToExtendedUser()
 {
     try
     {
         ExtendedUser exUser = new ExtendedUser(Configuration.localUser);
         exUser.ipAddress = Configuration.localIpAddress;
         exUser.port = Configuration.selectedTcpPort;
         return exUser;
     }
     catch (NullReferenceException)
     {
         return null;
     }
 }
Example #6
0
 /// <summary>
 /// Parses from a tcp connect <see cref="Message"/> the external user and their port and ip address
 /// </summary>
 /// <param name="message">Needs an TCP-connect message, more information at <see cref="Message"/></param>
 /// <returns>The external user out of this message</returns>
 public static ExtendedUser ParseFromMessage(Message message)
 {
     try
     {
         Logger.LogFatal("Message content+" + message.MessageContent);
         ExtendedUser exUser = new ExtendedUser(message.FromUser);
         String[] split = message.MessageContent.Split(';');
         exUser.ipAddress = IPAddress.Parse(split[0]);
         exUser.port = int.Parse(split[1]);
         return exUser;
     }
     catch (Exception ex)
     {
         Logger.LogException("Exception while parsing a message. ", ex);
     }
     return null;
 }
 /// <summary>
 /// Connect manually to the selected ip and port. 
 /// </summary>
 /// <param name="ipAndPort"></param>
 internal void ManualConnectToIPAndPort(string ipAndPort)
 {
     if (ipAndPort == "")
     {
         return;
     }
     else
     {
         String[] split = ipAndPort.Split(':');
         try
         {
             ExtendedUser ex = new ExtendedUser("#ManualConnect");
             ex.IpAddress = IPAddress.Parse(split[0]);
             ex.Port = int.Parse(split[1]);
             if (!programControl.NetworkService.ManualConnectToExUser(ex))
             {
                 chatForm.InformUser("Verbindung nicht möglich, da die Gegenseite nicht antwortet.");
                 return;
             }
             currentlyActiveChatUser = ex;
         }
         catch (Exception e)
         {
             Logger.LogException("Fehlerhafter String ", e);
         }
     }
 }
Example #8
0
 /// <summary>
 /// Disconnects from the current user
 /// </summary>
 /// <param name="ex"></param>
 internal void ManualDisconnectFromExUser(ExtendedUser ex)
 {
     lock (incomingConnectionLock)
     {
         if (ConnectionOverClient)
         {
             tcpClient.Disconnect();
             ConnectionOverClient = false;
         }
     }
 }
Example #9
0
 /// <summary>
 /// Connect to the given address external user, who has the address informations inside.
 /// </summary>
 /// <param name="exUser"></param>
 internal bool ManualConnectToExUser(ExtendedUser exUser)
 {
     bool success = false;
     lock (incomingConnectionLock)
     {
         if (control.GraphicControl.CurrentlyActiveChatUser != null && exUser.Equals(control.GraphicControl.CurrentlyActiveChatUser)) { return false; }
         if (!ConnectionOverServer)
         {
             try {
                 success = tcpClient.ReConnect(exUser.IpAddress, exUser.Port);
                 if (success)
                 {
                     ConnectionOverClient = true;
                 }
             }catch(SocketException ex)
             {
                 CloseConnectionFromClient();
             }
         }
     }
     return success;
 }
Example #10
0
 public UserConnection(ExtendedUser user, Socket socket)
 {
     this.user = user;
     this.socket = socket;
 }