Socket实现服务器与客户端通信(超简单)

前言:凡事贵在坚持,找回自己应有的姿态,以无惧的心态去面对生活、学习、挑战!共勉

 

 

一、题目

  请编写一个程序,实现Socket通信,即服务器端与客户端的通信,并要求消息回显

 二、思路

 1、编写两个类,分别为Server端和Client端,通过建立Socket通信,实现消息传递!

 2、使用BufferReader作为字符流输入,PrintWriter作为字符流输出!

 3、注意:需要先启动服务器端再启动客户端,否则会无法建立连接并且报错!

三、实现

1、服务器端

public class SocketServer {
    public static void main(String args[])
    {
        BufferedReader br=null;
        PrintWriter pw=null;
        try {
            ServerSocket serve=new ServerSocket(2000);
            Socket socket=serve.accept();//建立通信
            br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
            pw=new PrintWriter(socket.getOutputStream(),true);
            String s=br.readLine();//获取数据
            pw.println("Got your message:"+s);//发送数据
            System.out.println("Get Message:"+s);//输出接受得到的信息
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally {
            try {
                br.close();
                pw.close();
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }

        }
    }
}

2、客户端

public class SocketClient {
    public static void main(String args[])
    {
        BufferedReader br=null;
        PrintWriter pw=null;
        try {
            Socket socket=new Socket("localhost",2000);
            br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
            pw=new PrintWriter(socket.getOutputStream(),true);
            pw.println("Hello! This is Client!");//发送数据
            String s=null;
            while (true)
            {
                s=br.readLine();
                if (s!=null)
                    break;
            }
            System.out.println("Got Response:"+s);//数据回显,输出服务器端的信息
        }

        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally {
            try {
                br.close();
                pw.close();
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }
    }
}

发文不易,恳请大佬们高抬贵手!


点赞:随手点赞是种美德,是大佬们对于本人创作的认可!


评论:往来无白丁,是你我交流的的开始!


收藏:愿君多采撷,是大佬们对在下的赞赏!

你可能感兴趣的:(Java面试基础题,服务器,网络,websocket,java)