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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bowen-xiao 中级黑马   /  2015-1-12 10:53  /  720 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

程序思路简单,请各位多多指教。

Tcp 编程之服务器端
需求:
服务器接收客户端发送的字符串,反转之后发回客户端。
思路整理:
第一步:创建一个流套接字并将其连接到指定的端口号,服务器开始接收请求。
(在这里可以打印客户端IP)
第二步:创建一个输入流,用于接收服务器端读取到的数据。
第三步:创建一个输出流,用于服务器端处理后的数据返回。
第四步:业务逻辑处理,并返回数据。


代码如下:


importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.InputStreamReader;
importjava.io.OutputStreamWriter;
importjava.net.ServerSocket;
importjava.net.Socket;


/*
*服务器接收客户端发送的字符串,反转之后发回客户端。
*/
publicclass Test10_Tcp_Server {


    public static void main(String[] agrs)throws Exception


    {
        // 创建一个流套接字并将其连接到指定的端口号。
        ServerSocket ss = new ServerSocket(8888);
        Socket s = ss.accept();// 服务器开始接收请求
        // 获取请求主机的IP地址
        String ip = s.getInetAddress().getHostAddress();
        System.out.println(ip + "号主机与服务器已经连接");
        BufferedReader buf = new BufferedReader(new InputStreamReader(
                s.getInputStream()));
        BufferedWriter bufout = new BufferedWriter(new OutputStreamWriter(
                s.getOutputStream())
        ); // 创建一个输出流
        String line = null;
        while ((line = buf.readLine()) != null) {
        System.out.println(line);// 打印获取客户端传输过来的数据
            StringBuffer re = new StringBuffer(line);
            String str = re.reverse().toString(); // 字符串反转处理
            System.out.println(re + "++   ++" + str); // 服务器本地输出
            bufout.write(str); // 将字符反转并输出到客户端
            bufout.newLine();//写入一个行分隔符。
            bufout.flush();// 输出返回到客服端
        }
        s.close();
    }
}

0 个回复

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