public void run() { running = true; while (running) { try { IPEndPoint RemoteIPEndPoint = new IPEndPoint(IPAddress.Any, 1138); Byte[] receiveBytes = udpClient.Receive(ref RemoteIPEndPoint); HomeTransferServerData data = HomeTransferServerData.createFromUDP(receiveBytes); if (data.type.Equals("close")) { HomeTransferModel.getInstance().removeServer(data); } else { HomeTransferModel.getInstance().addServer(data); if (data.type.Equals("discover")) { HomeTransferController.getInstance().broadcastUDP("response"); } } HomeTransferController.getInstance().updateObserver(); } catch (Exception e) { Console.WriteLine("UDP listening finished."); } } }
public static void sendFiles(String server, String[] files) { // TODO: Get the selected remote instance's IP and start a sender thread String[] str = server.Split('@'); String IP = str[1]; HomeTransferServerData data = HomeTransferModel.getInstance().getServerData(IP); HomeTransferClient sender = new HomeTransferClient(data.IP, data.port, files); Thread senderThread = new Thread(new ThreadStart(sender.run)); senderThread.Start(); }
public static void broadcastPackage(String tag) { HomeTransferModel model = HomeTransferModel.getInstance(); HomeTransferServerData local = model.getLocalHomeTransferData(); UdpClient udpClient = new UdpClient(); udpClient.Connect("255.255.255.255", 1138); Byte[] senddata = Encoding.ASCII.GetBytes(local.name + ";" + local.IP + ";" + local.port + ";" + tag); udpClient.Send(senddata, senddata.Length); }
public Form1() { InitializeComponent(); form1 = this; HomeTransferServerData local = HomeTransferModel.getInstance().getLocalHomeTransferData(); this.Text = local.name + "@" + local.IP; this.listBox1.AllowDrop = true; this.listBox1.DragDrop += listBox1_DragDrop; this.listBox1.DragEnter += listBox1_DragEnter; }