0
package BroadCast;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class Server extends Thread {
private DatagramSocket sock;
public static boolean ServerUp = false;
// Wierdly not running this as a thread.
private void Server() {
try {
sock = new DatagramSocket(Constants.port);
ServerUp = true;
// Prints on console.
Constants.Server(Constants.ServerName
+ ", loaded sucessfully on port: " + Constants.port);
} catch (SocketException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new Server().start();
}
@Override
public void run() {
while (ServerUp) {
byte[] data = new byte[1024];
DatagramPacket Packet = new DatagramPacket(data, data.length);
try {
sock.receive(Packet);
} catch (IOException e) {
e.printStackTrace();
}
// Prints on console.
Constants.Server(new String(data).trim());
}
}
public void ServerData(byte[] data, InetAddress ip, int port) {
DatagramPacket Packet = new DatagramPacket(data, data.length, ip, port);
try {
sock.send(Packet);
} catch (IOException e) {
e.printStackTrace();
}
}
}
我運行了我的服務器類的主要無效,它沒有輸出(就像它支持)。但是當我把:Java線程未啓動?
new Server().Server();
(運行服務器無效),它的工作。但是,它不會正確循環(就像普通的線程一樣)。 如果你能幫助我,那會很棒(這可能是一個小錯誤)。
謝謝,它工作得很好。我想我有一個休息日。 –
@ Mr.Charles:這是一個微妙的錯誤。我之前就看到過,我很驚訝編譯器不會對此提出警告。 – NPE