java'da bir ağ programı programlıyorum ve bazı Paketleri 255.255.255.255'e göndermek istiyorum, ancak 192.168.1.255'e gönderdiğimde bile başarısız oluyor. ifconfig komutunun çıkışına göre, yayın adresidir. Ama onları arkadaşımın IP'sine gönderdiğimde iyi çalışıyor. Hiçbir İstisnalar atılıyorJava DatagramSocket tarafından 255.255.255.255'e paketleri gönderme
class Network {
DatagramSocket socket;
public Network() {
try {
socket = new DatagramSocket(8027);
socket.setBroadcast(true);
socket.connect(InetAddress.getByName("255.255.255.255"), 8027);
} catch (Exception e) {
System.err.println("Connection failed. " + e.getMessage());
}
listen();
}
public void listen() {
new Thread() {
public void run() {
while (true) {
try {
byte[] buf = new byte[1000];
DatagramPacket packet = new DatagramPacket(buf,
buf.length);
socket.receive(packet);
String message = new String(buf);
System.out.println("Recieved: " + message);
if (message.equals("end"))
return;
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
}
}.start();
}
public void sendMessage(String message){
byte[] buf= message.getBytes();
DatagramPacket packet= new DatagramPacket(buf, buf.length);
try{
socket.send(packet);
}catch(Exception e){
System.err.println("Sending failed. " + e.getMessage());
}
}
: Burada Ağı benim uygulanması, ben bunu DatagarmSocket ve datagram paketleri kullandım
public class StackOverFlow {
public static void main(String[] args) {
Network net= new Network();
Scanner input= new Scanner(System.in);
while(input.hasNext())
net.sendMessage(input.nextLine());
}
}
:
İşte benim programa kod.
Ad hoc bir ağdayım.
Arkadaşım kubuntu 11.04 kullanırken MAC OS X 10.6 kullanıyorum.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
inet 127.0.0.1 netmask 0xff000000
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::21f:f3ff:fed5:4779%en0 prefixlen 64 scopeid 0x4
inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:1f:f3:d5:47:79
media: autoselect (100baseTX <full-duplex>) status: active
supported media: autoselect 10baseT/UTP <half-duplex> 10baseT/UTP <full-duplex> 10baseT/UTP <full-duplex,hw-loopback> 10baseT/UTP <full-duplex,flow-control> 100baseTX <half- duplex> 100baseTX <full-duplex> 100baseTX <full-duplex,hw-loopback> 100baseTX <full-duplex,flow-control> 1000baseT <full-duplex> 1000baseT <full-duplex,hw-loopback> 1000baseT <full-duplex,flow-control> none
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::21d:4fff:feff:2b4d%en1 prefixlen 64 scopeid 0x5
inet 213.233.170.97 netmask 0xfffffc00 broadcast 213.233.171.255
ether 00:1d:4f:ff:2b:4d
media: autoselect status: active
supported media: autoselect
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 2030
lladdr 00:21:e9:ff:fe:bc:79:b2
media: autoselect <full-duplex> status: inactive
supported media: autoselect <full-duplex>
en2: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:1f:f3:b6:2c:be
media: autoselect status: inactive
supported media: none autoselect 10baseT/UTP <half-duplex>
vmnet1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.149.1 netmask 0xffffff00 broadcast 192.168.149.255
ether 00:50:56:c0:00:01
vmnet8: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.73.1 netmask 0xffffff00 broadcast 192.168.73.255
ether 00:50:56:c0:00:08
en0 benim dostum bağlanmak için kullanıyorum cihazdır: Ve burada ifconfig çıkıştır.
kolaylaştırır Lütfen ben bir acemi :) önceden
teşekkürler değilim. yayın kullanırken
Lütfen 'ifconfig' çıktısını gösterin! – ShiDoiSi
Yayını genişletdim. –