黑马程序员技术交流社区

标题: Java网络编程问题 [打印本页]

作者: 一个人旅行    时间: 2013-11-7 19:45
标题: Java网络编程问题
基础测试中遇到的一题,虽然交上去了,还想知道这题该怎么写。。。
使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。

服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
作者: 零下五度的水    时间: 2013-11-7 19:58
跟基础课程里23天13 基本没差啊
作者: zuiaichiyu    时间: 2013-11-8 00:40
本帖最后由 zuiaichiyu 于 2013-11-8 00:44 编辑

自己写的测试了一下 可以实现,异常直接抛出了需要导入的包
import java.net.*;
import java.io.*;
客户端代码
  1. public class Client {

  2.         public static void main(String[] args) throws Exception {

  3.                 // 建立客户端Socket服务端对象
  4.                 Socket s = new Socket("127.0.0.1", 10000);

  5.                 // 读取键盘录入
  6.                 BufferedReader bfr = new BufferedReader(
  7.                                 new InputStreamReader(System.in));

  8.                 // 通过打印流将读取的字符 打印到输出流
  9.                 PrintWriter pw = new PrintWriter(s.getOutputStream(), true);

  10.                 // 获取服务器返回的输入流对象
  11.                 BufferedReader bfrin = new BufferedReader(new InputStreamReader(
  12.                                 s.getInputStream()));

  13.                 String line = null;
  14.                 while ((line = bfr.readLine()) != null) {
  15.                         //向输出流打印
  16.                         pw.println(line);
  17.                         
  18.                         //读取返回的输入流并打印
  19.                         String reverline = bfrin.readLine();
  20.                         System.out.println(reverline);

  21.                 }
  22.                 pw.close();
  23.                 bfr.close();
  24.                 s.close();

  25.         }

  26. }
复制代码
服务器端代码
  1. public class Server {

  2.         public static void main(String[] args) throws Exception {

  3.                 //创建服务器端Socket服务对象,并监视10000端口
  4.                 ServerSocket ss = new ServerSocket(10000);
  5.                
  6.                 //建立与客户端的连接
  7.                 Socket s = ss.accept();

  8.                 // 获取客户端输入的内容
  9.                 BufferedReader bfr = new BufferedReader(new InputStreamReader(
  10.                                 s.getInputStream()));

  11.                 // 创建打印流 将输出结果 打印到输出流
  12.                 PrintWriter pw = new PrintWriter(s.getOutputStream(), true);

  13.                 String line = null;
  14.                 while ((line = bfr.readLine()) != null) {
  15.                         
  16.                         //使用字符串缓冲区的反转功能反转
  17.                         StringBuilder sb = new StringBuilder(line);
  18.                         sb = sb.reverse();
  19.                         line = sb.toString();
  20.                         pw.println(line);
  21.                 }        
  22.                 pw.close();
  23.                 bfr.close();
  24.                 ss.close();

  25.         }

  26. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2