java的TCP网络通信作业题

本文介绍了一个简单的Java TCP聊天程序实现,包括服务端和客户端的代码示例。服务端监听特定端口并接收消息,客户端连接到指定IP地址和服务端进行交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------------------------------------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);          

        }

}

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值