在 java Socket應用的 3-4節 我把老師的代碼修改了一下可以手動輸入文字讓對面的服務器/客戶端接受,下面是代碼://客戶端package 通訊;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.io.PrintStream;import java.net.Socket;import java.util.Scanner;public class client { public static void main(String[] args) { try { Socket socket = new Socket("127.0.0.1", 8885); while (true) { ?//死循環重復步驟 OutputStream os = socket.getOutputStream(); PrintStream bw = new PrintStream(os); Scanner input = new Scanner(System.in); System.out.println("你想對對面的服務器說些什么"); bw.print(input.next());//從鍵盤輸入讀取一行 打印到輸出流 bw.flush(); socket.shutdownOutput(); InputStream is = socket.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String s; while ((s = br.readLine()) != null) { System.out.println("服務器端說:" + s); } socket.shutdownInput(); br.close(); isr.close(); is.close(); bw.close(); os.close(); } } catch (IOException e) { e.printStackTrace(); } }}//服務器端package 通訊;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.Scanner;public class server { public static void main(String[] args) { try { ServerSocket serversocket = new ServerSocket(8885); System.out.println("正在等待連接。。。。。。。"); Socket socket = serversocket.accept(); while(true){//死循環重復 InputStream is = socket.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String s; while ((s = br.readLine()) != null) { System.out.println("客戶端說" + s); } socket.shutdownInput(); OutputStream os = socket.getOutputStream(); PrintStream bw = new PrintStream(os); Scanner input = new Scanner(System.in); System.out.println("你想對面的客戶機說些什么"); bw.print(input.next());//從鍵盤輸入讀取一行打印到輸出流 bw.flush(); socket.shutdownOutput(); bw.close(); os.close(); br.close(); isr.close(); is.close(); } } catch (IOException e) { e.printStackTrace(); } }}沒加while死循環之前是,服務器等待請求,客戶端發送一行文字,服務器接受后再發一行文字回去,程序結束。之后我又加了兩個while死循環希望它能一直重復互發消息的步驟,但是出現了如下的異常,代碼應該怎么修改才能實現我想要的不停的互發消息呢? ??
添加回答
舉報
0/150
提交
取消