A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 下一秒温存 中级黑马   /  2014-11-6 10:51  /  941 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itheima;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

/**
* 第10题:使用TCP协议完成一个客户端一个服务器。
* 客户端从键盘输入读取一个字符串,发送到服务器。
* 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
* @author ***
*/
public class Test10 {
        //服务器端
        public static void main(String[] args){
                ServerSocket ss = null;
                Socket s = null;
                try {
                        ss = new ServerSocket(60000);//创建socket对象
                        s =ss.accept();

                        InputStream is = s.getInputStream();//获取输入流
                        InputStreamReader isr = new InputStreamReader(is);
                        BufferedReader bs = new BufferedReader(isr);//从键盘获取输入流到缓冲区

                        String str = bs.readLine();

                        System.out.println(str);//服务器本地输出


                        OutputStream os = s.getOutputStream();//获取输出流
                        PrintWriter pw = new PrintWriter(os);//创建输出流
                        pw.println(str.toUpperCase());//反转字符串返回到客户端
                        pw.flush();


                } catch (Exception e) {
                        e.printStackTrace();
                }finally{
                        if(ss!=null)
                                try {
                                        s.close();
                                } catch (IOException e) {
                                        e.printStackTrace();
                                }
                }
        }
}

class client{
        //客户端
        public static void main(String[] args){
                Socket s=null;
                try {
                        Scanner input = new Scanner (System.in);//创建Scanner输入流,input对象。
                        System.out.println("请输入:");
                        String str = input.next();
                        s = new Socket("127.0.0.1",60000);
                        OutputStream os = s.getOutputStream();//获取输出流
                        PrintWriter pw = new PrintWriter(os);//创建输出流
                        pw.println(str);
                        pw.flush();
                        InputStream is =s.getInputStream();//获取输入流
                        InputStreamReader isr = new InputStreamReader(is);//创建输入流
                        BufferedReader br = new BufferedReader(isr);//从服务器获得输入流到缓冲区

                        String string = br.readLine();//反转字符创

                        System.out.println(string);//输出结果

                } catch (Exception e) {
                        e.printStackTrace();
                }finally{
                        if(s!=null)
                                try {
                                        s.close();
                                } catch (IOException e) {
                                        e.printStackTrace();
                                }
                }
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马