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