在 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
提交
取消