Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

javanaveia

Java I.O

Recommended Posts

Por Favor gostaria de saber se alguem pode me ajuda. import java.io.*; import java.net.*; public class WakeOnLan { public static final int PORT = 3128; public static void main(String[] args) { BufferedReader Mac = new BufferedReader (new FileReader(new File("Mac.txt"))); String macStr = Mac.readLine(); String ipStr = "255.255.255.255"; //String macStr = "00:02:55:5D:781"; nao estou conseguindo passar os paramentros do meu arquivo Mac.txt para a String macStr do meu programa. Se alguem puder me ajudar agradeço desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal eu quero passar como parametro o que está dentro do Mac.txt

para a String MacStr a String IpStr possui valor estático.

 

Está aparecendo a mensagem de erro:

 

not a statement

String macStr = str;

^

 

';' expected

String macStr = str;

^

 

Se alguem puder me ajudar. Valeu

 

 

 

Eis o COD

 

import java.io.*;

import java.net.*;

 

public class WakeOnLan {

 

public static final int PORT = 3128;

 

public static void main(String[] args) {

 

 

 

//String macStr = Mac.readLine();

 

try {

BufferedReader str = new BufferedReader(new FileReader("Mac.txt"));

String str;

while ((str = in.readLine()) != null) {

 

if (str.contains(":"))

 

String macStr = str;

 

in.close();

}

} catch (IOException e) {

}

 

 

 

String ipStr = "255.255.255.255";

//String macStr = "00:02:55:5D:78:D1";

 

try {

byte[] macBytes = getMacBytes(macStr);

byte[] bytes = new byte[6 + 16 * macBytes.length];

for (int i = 0; i < 6; i++) {

bytes = (byte) 0xff;

}

for (int i = 6; i < bytes.length; i += macBytes.length) {

System.arraycopy(macBytes, 0, bytes, i, macBytes.length);

}

 

InetAddress address = InetAddress.getByName(ipStr);

DatagramPacket packet = new DatagramPacket(bytes, bytes.length, address, PORT);

DatagramSocket socket = new DatagramSocket();

socket.send(packet);

socket.close();

 

System.out.println("Wake-on-LAN packet sent.");

}

catch (Exception e) {

System.out.println("Failed to send Wake-on-LAN packet: + e");

System.exit(1);

}

 

}

 

private static byte[] getMacBytes(String macStr) throws IllegalArgumentException {

byte[] bytes = new byte[6];

String[] hex = macStr.split("(\\:|\\-)");

if (hex.length != 6) {

throw new IllegalArgumentException("Invalid MAC address.");

}

try {

for (int i = 0; i < 6; i++) {

bytes = (byte) Integer.parseInt(hex, 16);

}

}

catch (NumberFormatException e) {

throw new IllegalArgumentException("Invalid hex digit in MAC address.");

}

return bytes;

}

 

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.