我正在尝试一个非常简单的服务器/客户端程序,但似乎无法使其正常工作 - " acc"和#34;等待连接"然而,打印"连接"我做错了什么从未打印过?
客户代码:
Socket s;
String serverIP = "127.0.0.1";
int serverPortNo = 9010;
public Frame(){
try{
s = new Socket(serverIP, serverPortNo);
}
catch(IOException e){
System.out.println("error : "+ e.getMessage());
}
}
服务器代码:
public class Server {
ServerSocket ss;
public Server(int port){
try{
ss = new ServerSocket(port);
acceptConnections();
}
catch(IOException e){
System.out.println(e.getMessage());
}
}
public void acceptConnections(){
Socket s;
System.out.println("acc");
while(true){
try{
System.out.println("waiting for connections");
s= ss.accept();
System.out.println("connection");
}
catch(Exception e){
System.out.println("error : " + e.getMessage());
}
}
}
主要方法:
public class Main {
public static void main(String[] args){
new Server(9010);
new Frame();
}
}
答案 0 :(得分:0)
您需要在单独的线程中启动服务器。现在,您的主应用程序启动服务器并等待客户端,但客户端永远不会启动。
请尝试将您的main
方法更改为
try {
Thread t = new Thread(new Runnable() {
public void run() {
new Server(9010);
}
});
t.start();
new Frame();
t.join();
} catch(Exception e) { e.printStackTrace(); }