分享一个基础测试题
题目:使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
客户端代码:
- public class Test10 {// 客户端程序
- /**
- * 注:该程序目前只能输入数字才能完成反转
- */
- public static void main(String[] args) {
- // 第一步:创建一个Socket对象
- Socket s=null;
- try {
- s = new Socket(InetAddress.getLocalHost(), 44322);
- while (true) {
- // 第二步: 从控制台中获取一个字符串
- Scanner sc=new Scanner(System.in);
- System.out.println("请输入一个字符串:");
- String str=sc.nextLine();
- // 第三步:向服务端发送数据
- System.out.println("向服务端发送数据中");
- PrintStream printStream=new PrintStream(s.getOutputStream());
- printStream.println(str);
- // 第四步:向服务器接受数据
- BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(s.getInputStream()));
- System.out.println("接受服务器的字符串");
- System.out.println(bufferedReader.readLine());
- sc.close();
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- if(s!=null){
- try {
- s.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
-
- }
- }
复制代码 服务端代码
- public class TCPServer {// 服务端
- public static void main(String[] args) {
- // 第一步监听客户端
- Socket s = null;
- try {
- while (true) {
- ServerSocket serverSocket = new ServerSocket(44322);
- s = serverSocket.accept();
- BufferedReader reader = new BufferedReader(
- new InputStreamReader(s.getInputStream()));
- String str = reader.readLine();
- // 第二步:接收客户端的数据
- System.out.println("服务端接收数据");
- Thread.sleep(5000);
- PrintStream printStream = new PrintStream(s.getOutputStream());
- // 第三步:将字符串反转
- System.out.println("服务端将字符串反转后发送给客户端");
- printStream.println(new StringBuffer(str).reverse());
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- if(s!=null){
- try{
- s.close();
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- }
- }
- }
- }
复制代码
|
|