gpt4 book ai didi

java - 如何让TCP和UDP服务器同时启动?只有其中任何一个开始的地方

转载 作者:行者123 更新时间:2023-12-01 19:14:13 31 4
gpt4 key购买 nike

当我启动它时,TCPServer 开始运行,但之后 UDPServer 不运行?如果我交换这些总是第一个运行。我怎样才能同时启动两者?

其余的一切都很好。我该如何解决这个问题?

/**
* Boot baby boot
* @param args
*/
public static void main(String[] args)
{
/* Heavy load - 1 */
new Thread(new Runnable()
{
public void run()
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
TCPServer tcpserver = null;
try {
tcpserver = new TCPServer(8888);
}
catch (IOException e){
e.printStackTrace(System.err);
}
tcpserver.waitForConnections();
}
});
}
}).start();

new Thread(new Runnable()
{
public void run()
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
UDPServer udpserver = null;
try {
udpserver = new UDPServer(8889);
}
catch (IOException e){
e.printStackTrace(System.err);
}
udpserver.waitForConnections();
}
});
}
}).start();

/* Heavy load - 2 */
try {
Game3Dstart();
} catch (Exception ex) {

}

/* Finally */
j = new main();
j.setVisible(true);
}

最佳答案

这是因为 waitForConnections 正在阻塞。您需要在单独的线程中异步启动它们。

new Thread(new Runnable(){
public void run(){
TCPServer tcpserver = null;
try {
tcpserver = new TCPServer(8888);
}
catch (IOException e){
e.printStackTrace(System.err);
}
tcpserver.waitForConnections();
}
}).start();

new Thread(new Runnable(){
public void run(){
UDPServer udpserver = null;
try {
udpserver = new UDPServer(8889);
}
catch (IOException e){
e.printStackTrace(System.err);
}
udpserver.waitForConnections();
}
}).start();

关于java - 如何让TCP和UDP服务器同时启动?只有其中任何一个开始的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7423695/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com