java的TCP网络通信作业题

------------------------------------java的TCP网络通信作业题------------------------------------------

本机IP127.0.01,只能进行本地访问。

先有服务端,再有客服端

题目:用TCP做相互聊天的程序

 

聊天必须要有服务端,和客服端

首先创建服务端

 

public  class TCPServer {

 

    /**

     * 服务端的端口

     */

    privateint  port;

   

   

   

    public TCPServer(int  port) {

        super();

        this.port = port;

        Receive r = new Receive();

        Thread t = new Thread(r);

        t.start();

    }

 

 

 

    class Receive implements Runnable{

 

        @Override

        public  void run() {

           //创建服务端的Socket

           ServerSocket ss = null;

           Socket s = null;

           BufferedReader br =null;

           try {

               ss = new  ServerSocket(port);

               System.out.println(port+"服务器已经启动");

               //接收Socket

               s = ss.accept();

               //获得客服端的IP

               InetAddress ia = s.getInetAddress();

               //获得输入流

               InputStream in = s.getInputStream();

               br = new BufferedReader(new InputStreamReader(in));

               String line = null;

               while((line = br.readLine()) != null) {

                   System.out.println(ia.getHostAddress() + "说:" + line);

                   if("exit".equals(line)) {

                       System.out.println("服务端关闭");

                       break;

                   }

               }

           } catch (IOException e) {

               e.printStackTrace();

           } finally {

                   try {

                       if(br != null)

                           br.close();

                       if(s != null)

                           s.close();

                       if(ss != null)

                           ss.close();

                   } catch (IOException e) {

                       e.printStackTrace();

                   }

           }

        }

    }

   

    public static void main(String[] args) {

       

        new TCPServer(10003);

       

    }

}

 

 

-------------------------------------------------------

 

创建客服端

public class TCPClient {

   

        private String ip;

       

        private int port;

 

        public TCPClient(String ip, int port) {

           super();

           this.ip = ip;

           this.port = port;

           Sender s = new Sender();

           Thread t = new Thread(s);

           t.start();

        }

       

        class Sender implements Runnable{

 

           @Override

           public void run() {

              

               Socket s = null;

               BufferedReader br = null;

               BufferedWriter bw =null;

               try {

                   s = new Socket(ip,port);

                   br = new BufferedReader(new InputStreamReader(System.in));

                   //获得输出通道

                   OutputStream os = s.getOutputStream();

                   bw = new BufferedWriter(new OutputStreamWriter(os));

                   String line = null;

                   while((line = br.readLine())!= null) {

                       System.out.println("请说话:");

                       if("exit".equals(line)) {

                           System.out.println("客服端关闭");

                           break;

                       }

                       System.out.println("我说:/r/n"+line);

                       bw.write(line);

                       bw.newLine();

                       bw.flush();

                      

                   }

               } catch (IOException e) {

                   e.printStackTrace();

               } finally {

                       try {

                           if(bw != null)

                           bw.close();

                           if(br != null)

                               br.close();

                           if(s != null)

                               s.close();

                       } catch (IOException e) {

                           e.printStackTrace();

                       }

               }

           }  

        }

       

        public static void main(String[] args) {

           new TCPClient("192.168.1.104", 10003);          

        }

}

  

猜你喜欢

转载自blog.csdn.net/weixin_41547486/article/details/80033131
今日推荐