java服务器套接字
我想在同一个文件中创建java服务器和客户机……因为这是我的项目结构 服务器-->客户端/服务器-->客户端 服务器和客户机部分的编码非常简单,但是我在为客户机/服务器部分创建时遇到了一个问题。。其中,我的代码只能运行客户端部分,而不能启动服务器部分。因为我的thread run()代码java服务器套接字,java,serversocket,Java,Serversocket,我想在同一个文件中创建java服务器和客户机……因为这是我的项目结构 服务器-->客户端/服务器-->客户端 服务器和客户机部分的编码非常简单,但是我在为客户机/服务器部分创建时遇到了一个问题。。其中,我的代码只能运行客户端部分,而不能启动服务器部分。因为我的thread run()代码 从上面的代码中,我只在执行client.run()时遇到问题,代码就停在那里,而不在try部分执行下面的新服务器,因为不知道什么是客户端,或者看到它的代码限制了我们的帮助能力。如果它有一个run()方法,它可能
从上面的代码中,我只在执行client.run()时遇到问题,代码就停在那里,而不在try部分执行下面的新服务器,因为不知道什么是
客户端,或者看到它的代码限制了我们的帮助能力。如果它有一个run()
方法,它可能会实现Runnable
,所以你可以直接调用新线程(客户端)。start()
而不是直接调用它的run方法。不知道客户端是什么,或者看到它的代码限制了我们的帮助能力。如果它有一个run()
方法,它可能实现Runnable
,因此您可以只调用new Thread(client).start()
而不是直接调用它的run方法。如果client
子类Thread
,那么您需要调用start()
,而不是run()
。如果它实现了Runnable
,那么你需要实例化一个线程来执行它,并调用线程的start()
方法。如果客户端子类线程,那么你需要调用开始()
,而不是运行()
。如果它实现了Runnable
,那么您需要实例化一个线程来执行它,并调用线程的start()
方法。什么是client.run()?为什么不为这件事设置一个线程呢?什么是client.run()?为什么不为这件事画一条线呢?
package com.main.datadistributor;
import java.io.IOException;
import java.net.ServerSocket;
public class Slave {
public static void main(String args[]) throws IOException{
Config cfg = new Config("Slave");
String MasterServerIP = cfg.getProperty("MasterServerIP");
String MasterServerPort = cfg.getProperty("MasterServerPort");
String SlaveServerPort = cfg.getProperty("SlaveServerPort");
Client client = new Client(MasterServerIP,Integer.parseInt(MasterServerPort),"SLAVEONE");
client.run();
int numClient = 0;
ServerSocket listener = new ServerSocket(Integer.parseInt(SlaveServerPort));
System.out.println("Server starts running");
try{
while(true){
new Server(listener.accept(), numClient++, Integer.parseInt(SlaveServerPort), "SLAVESERVER").start();
}
} finally {
listener.close();
}
}
}