黑马程序员——使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。

来源:互联网 发布:国家卫计委数据 编辑:程序博客网 时间:2024/05/14 13:24
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------package com.itheima;


/**


第10题:
 使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。
服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
@author 


思路:
步骤:


*/
import java.io.*;
import java.net.*;
import java.util.Scanner;
class TcpServer//服务端
{
        public static void main(String[] args)throws Exception
        {
                Socket s=null;
                try{
                        while(true)
                        {
                                @SuppressWarnings("resource")
ServerSocket serverSocket=new ServerSocket(10001);
                                s=serverSocket.accept();
                                BufferedReader server_buf=new BufferedReader(new InputStreamReader(s.getInputStream()));
                                String str=server_buf.readLine();
                                System.out.println("服务端接受到数据...");
                                Thread.sleep(10000);
                                PrintStream pri=new PrintStream(s.getOutputStream());
                                System.out.println("服务端将字符串反转后发送给客户端...");
                                pri.println(new StringBuffer(str).reverse());//将反转后的字符串打印到客户端屏幕上
                        }
                }
                catch(Exception e)
                {
                        e.printStackTrace();
                }
                finally{
                        if(s!=null){
                                try{
                                        s.close();
                                }
                                catch(Exception e)
                                {
                                        e.printStackTrace();
                                }
                        }
                }
        }
}


class TcpClient//客户端
{
        public static void main(String[] args)throws Exception
        {
                Socket s=null;
                try
                {
                        s=new Socket(InetAddress.getLocalHost(),10001);
                        while(true){
                                BufferedReader client_buf=new BufferedReader(new InputStreamReader(s.getInputStream()));
                                PrintStream pri=new PrintStream(s.getOutputStream());
                                Scanner sc=new Scanner(System.in);
                                System.out.println("请输入一个字符串:");
                                String str=sc.nextLine();
                                System.out.println("正在向服务器发送数据...");
                                pri.println(str);
                                System.out.println("接受来自服务器反转的字符串...");
                                System.out.println(client_buf.readLine());        
                                sc.close();
                        }
                }
                catch(Exception e)
                {
                                e.printStackTrace();
                }
                finally{
                        if(s!=null){
                                try{
                                        s.close();
                                }
                                catch(Exception e)
                                {
                                        e.printStackTrace();
                                }
                        }
                }        
        }
}
0 0
原创粉丝点击