因此,我的問題是套接字連接時是否可以創建兩個引用1套接字輸入流的數據輸入流。我想打印出文本和文本2,但這不起作用。Java如何從客戶端多次使用傳入套接字
客戶端代碼
public static void main(String[] args) {
new Sender();
}
public Sender() {
try {
Socket sock = new Socket("127.0.0.1",1337);
DataOutputStream out = new DataOutputStream(sock.getOutputStream());
out.writeUTF("Test");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Server代碼
public static void main(String[] args) {
new Listen();
}
public Listen() {
Thread thread = new Thread(this);
thread.start();
}
@Override
public void run() {
try {
ServerSocket serversocket = new ServerSocket(1337);
while(true) {
Socket socket = serversocket.accept();
System.out.println(socket.getPort() + ": " + socket.getInetAddress().getHostAddress());
DataInputStream input = new DataInputStream(socket.getInputStream());
DataInputStream input2 = new DataInputStream(socket.getInputStream());
String text = input.readUTF();
String text2 = input2.readUTF();
if(text != null) {
System.out.println(text);
}
if(text2 != null) {
System.out.println(text2);
}
//socket.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("Error");
}
請張貼更多:一個最小的,可讀的和功能正常的代碼示例。這在所有內容上都很短 – efekctive
我不認爲你提供的代碼與你所說的問題有關。您應該發佈服務器處理來自客戶端的連接請求的代碼部分。 – coolioasjulio
我在一些較小的版本中更改了代碼,使其在我的意思中更清晰一點 – Rvdrichard