我試圖去適應我的簡單的socket服務器,以便它可以有多個TCP連接的多個連接,通過多線程,但我似乎無法得到它的工作。到目前爲止我的代碼如下所示,我真的不知道從哪裏何去何從:創建一個套接字服務器允許通過線程和Java
import java.net.*;
import java.io.*;
public class DoSomethingWithInput implements Runnable {
private final Socket clientSocket; //initialize in const'r
public void run() {
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String nextline;
while ((nextline = in.readLine())!=null) {
System.out.println(nextline);
} //... close socket, etc.
}
}
public class Socket{
public Socket() {
}
@Override
public void run() {
try {
ServerSocket serverSocket = null;
serverSocket = new ServerSocket(5432);
for (;;) {
ServerSocket serverSocket = null;
serverSocket = new ServerSocket(5432);
for (;;) {
Socket clientSocket = null;
clientSocket = serverSocket.accept();
//delegate to new thread
new Thread(new DoSomethingWithInput(clientSocket)).start();
}
}
}catch (IOException e) {
System.err.println("Could not listen on port: 5432.");
System.exit(1);
}
}
}
會有人能夠給我我如何能做到這一點一些指點,爲什麼我目前的實現不會工作?我是通過Java教程http://download.oracle.com/javase/tutorial/networking/sockets/examples/KKMultiServerThread.java這裏提示運行,但他們在這裏給出例子似乎使用大量的外部資源和類,如KnockKnockProtocol等等等等
會有人能夠幫我這個?
非常感謝!
你能不能舉一個例子你建議那個班? – 2016-07-19 13:27:05
@DanyLavrov:不,我想我已經在這裏提供了足夠的信息 - 我並不想開始做大量的工作來添加一個超過5年的答案,並且它看起來對大多數人來說有足夠的信息。如果您嘗試使用它並遇到問題,也許您應該提出一個新問題,顯示您嘗試過的以及出錯的地方,並參考此答案。 – 2016-07-19 13:29:12
並不重要。我已經知道了,謝謝。 – 2016-07-19 15:42:08