public ListenerSocket(int port, NetworkGeomagicTouchViewModel viewModel)
 {
     this._socketMessage = new SocketMessage();
     this._port = port;
     this._nameOfAttachedClient = "";
     this.masterViewModel = viewModel;
 }
 public void sendData(SocketMessage socketMessage)
 {
     string jsonString = JsonConvert.SerializeObject(socketMessage);
     // send data
     byte[] messageToSend = System.Text.Encoding.ASCII.GetBytes(jsonString);
     udpTalker.Send(messageToSend, messageToSend.Length);
 }
 public void SomeoneIsConnecting(string IPaddress, string Name)
 {
     ConnectedUser tmp = new ConnectedUser();
     tmp.Ip = IPaddress;
     tmp.Name = Name;
     tmp.MyNumber = connectedUsers.Count + 1;
     tmp.HasControl = false;
     MTObservableCollection<ConnectedUser> newList = new MTObservableCollection<ConnectedUser>();
     newList = connectedUsers;
     newList.Add(tmp);
     connectedUsers = new MTObservableCollection<ConnectedUser>();
     connectedUsers = newList;
     this.RaisePropertyChanged("ConnectedUsers");
     SocketMessage socketMessage = new SocketMessage();
     socketMessage.Port = (listenerSockets.Count + 12001).ToString();
     socketMessage.MessageType = "PortInformation";
     talkerSocket = new TalkerSocket(IPaddress, ClientUnderlyingListenerPort);
     ListenerSocket newListenSocket = new ListenerSocket(Int32.Parse(socketMessage.Port), this);
     listenerSockets.Add(newListenSocket);
     listenerSockets.ElementAt(listenerSockets.Count - 1).StartListening();
     talkerSocket.sendData(socketMessage);
     viewShouldUpdate = true;
 }