Socket

本文详细介绍了TCP的三次握手和四次挥手过程,以及如何使用多线程处理多客户端连接。通过创建线程实现服务端对每个客户端的独立响应,讨论了线程API中的线程优先级和sleep方法,强调了正确关闭Socket以断开连接的重要性。
摘要由CSDN通过智能技术生成

目录

             实现客户端循环发消息给服务端

     1.TCP的三次握手和四次挥手;

       a.TCP连接时需要进行三次握手

       b. 双方断开链接时要进行四次挥手;

       c.多客户端链接;

      2. 多线程:

         a.定义,

         b.用途:

         c.线程的生命周期图: 

         d. 创建线程的两种方式:

         e.使用多线程实现多客户端连接服务端;

      3.线程API;--- 获取线程相关信息的方法:

           a.线程优先级

            b.sleep阻塞

       4.线程Thread类的常用方法

 


回顾:

精华笔记:

    实现客户端循环发消息给服务端

        需要注意的几个点:
  1:当客户端不再与服务端通讯时,需要调用socket.close()断开链接,此时会发送断开链接的信号给服务端。这时服务端的br.readLine()方法会返回null,表示客户端断开了链接。
  2:当客户端链接后不输入信息发送给服务端时,服务端的br.readLine()方法是出于阻塞状态的,直到读取了一行来自客户端发送的字符串。

     1.TCP的三次握手和四次挥手;

              a.TCP连接时需要进行三次握手;

            b. 双方断开链接时要进行四次挥手;

 

      c.多客户端链接;

               之前只有第一个连接的客户端可以与服务端说话。
               原因:    服务端只调用过一次accept方法,因此只有第一个客户端链接时服务端接受了链         接并返回了Socket,此时可以与其交互。而第二个客户端建立链接时,由于服务端没有再次调           用accept,因此无法与其交互。

 

     

 2. 多线程:

             a.定义,

                    线程:顺序/的单一程序执行流程/就是一个线程(代码一句一句的有先后顺序的执行)

                    多线程:多个/单一顺序执行的流程/并发运行(造成"感官上同时运行"的效果);

                    并发:微观上走走停停,宏观上感觉一起运行的现象成为并发运行!    (由于CPU执行              时间在纳秒级别,我们感觉不到切换线程运行的过程。)

              b.用途:

                       *多个代码片段执行顺序有冲突时,希望它们各干各的时,就应当放在不同线程                  上"同时"运行。

                       *一个线程可以运行,但是多个线程可以更快时,可以使用多线程运行。

              c.线程的生命周期图: 

        

       d. 创建线程的两种方式:

  @方式一:继承Thread并重写run方法
         定义一个线程类,重写run方法,在run方法中定义线程要执行的任务;
         注:启动该线程要调用该线程的start方法,而不是run方法!!!

             优缺点

             优点:结构简单,便于匿名内部类形式创建。
             缺点:
                   1:继承冲突:java单继承,会导致不能再继承其他类去复用方法。
                   2:耦合问题:会导致线程与线程任务绑定在了一起,不利于线程的重用。

      @方式二:

                a.实现Runnable接口单独定义线程任务;

                 b.匿名内部类形式的线程创建

                 c.主线程:执行main方法的线程称为"主线程";(java中的代码都是靠线程运行的)。
                            线程提供了一个方法:static Thread currentThread(),该方法可以获取运行这个                       方法的线程。

         e.使用多线程实现多客户端连接服务端;

            流程图:

      3.线程API;--- 获取线程相关信息的方法:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值