public void ExecuteServer(int portNum) { IPHostEntry ipHost = Dns.GetHostEntry(Dns.GetHostName()); IPAddress ipAddr = ipHost.AddressList[0]; IPEndPoint localEndPoint = new IPEndPoint(ipAddr, portNum); Socket listener = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp); try { listener.Bind(localEndPoint); listener.Listen(100); Console.WriteLine("Server is Listening...."); Socket ClientSocket = default; while (true) { ClientSocket = listener.Accept(); Console.WriteLine("Client connected"); Application.Current.Dispatcher.Invoke((Action) delegate { MainWindow joiner = new MainWindow(); List <SongData> list = playlist.getAllSongs(); for (int i = 0; i < list.Count; i++) { Uri filePathUri = new Uri(list[i].filePath); string filePathUriString = "http://" + GetIPAddress().ToString() + ":8080/" + filePathUri.AbsolutePath; Console.WriteLine("filePathUriString is " + filePathUriString); Uri newUri = new Uri(filePathUriString); Console.WriteLine("newUri is " + newUri); SongData newSong = new SongData(list[i].filePath); newSong.songUri = newUri; joiner.playlist.addSong(newSong); } joiner.Hosting_Label.Content = "You are listening to " + GetIPAddress().ToString() + ":" + portNum + "'s playlist"; joiner.Hosting_Label.Visibility = Visibility.Visible; joiner.Create_Playlist_Label.Visibility = Visibility.Hidden; joiner.Join_Button.Visibility = Visibility.Hidden; joiner.Host_Button.Visibility = Visibility.Hidden; joiner.Add_Song_To_Playlist_Button.Visibility = Visibility.Hidden; joiner.Remove_Song_From_Playlist_Button.Visibility = Visibility.Hidden; joiner.Show(); }); } } catch (Exception e) { Console.WriteLine(e.ToString()); } }