定时器,套接字,数据包

Timer 定时器
方法:

cancel() ----------------终止此计时器,如果再次调度已经终止的定时器会报错 
purge()------------------删除所有取消的任务
TimerTask ---------------定时器任务 是抽象类 需要重写run方法
schedule(TimerTask task, long delay,long period)----------在指定的时间安排指定的任务执行
schedule (TimerTask  task, Date firstTime, long period)- 从指定 的时间开始 ,对指定的任务执行重复的 固定延迟执行 。

网络编程三要素

  1. IP

  2. 端口

      应用程序在设备的唯一标识
      端口号:取值范围 0~65535    自己用一般用1023以上端口
      一个端口只能被一应用程序使用
    
  3. 协议

InetAddress
方法

static InetAddress    getLocalHost()          返回本地主机的地址
static InetAddress    getByName(String host)  确定主机名称的IP地址。  
       String         getHostAddress()        返回文本显示中的IP地址字符串。  
 InetAddress address = InetAddress.getByName("LAPTOP-I9LAAE");
     String ip = address.getHostAddress();
     String hostName = address.getHostName();

UUID

UUID.randomUUID()// 随机生成唯一标识符

两个协议
TCP: 面向连接的协议

优点:可靠,能确保数据的完整性,链接后无大小限制
缺点:需要链接时间

UDP:无连接的协议

优点:速度快
缺点:不安全,不能确保数据的完整性,有大小限制,每个数据报在64KB之内

ServerSocket 服务器端
构造方法:

ServerSocket(int port) ------------创建绑定指定端口

方法:

accept()     如果没有收到客户端请求就阻塞,一旦有了客户端请求,方法返回 socket对象来和客户端建立连接
close()      关闭此套接字
getInetAddress()                     返回此服务器套接字的本地地址。
getInetAddress().getHostAddress()    返回IP地址字符串
getInetAddress().getHostName()       返回主机名

Socket 客户端
构造方法:

Socket(InetAddress address, int port)  ----------连接到指定IP地址的指定端口号

方法:

close() ---------------关闭此套接字。
getInputStream() ------返回此套接字的输入流。
getOutputStream() -----返回此套接字的输出流。

DatagramSocket
构造方法

DatagramSocket    ds=new DatagramSocket (8080)     在UDP端口8888上接收广播。 

方法

receive(DatagramPacket p)    接收数据包
send(DatagramPacket p)       发送数据包

DatagramPacket

构造方法

DatagramPacket(byte[] buf, int length)          构造一个 DatagramPacket用于接收长度的数据包 length   
DatagramPacket(byte[] buf, int length, InetAddress address, int port)    
构造一个 DatagramPacket用于接收长度的数据包 length ,指定目的地的地址和端口
byte[] b=new byte[1024];
DatagramPacket  dp=new DatagramPacket(b,b.length);

方法

getAddress()  返回该数据报发送或接收数据报的计算机的IP地址
getData()     返回接收到的数据
getLength()   返回数据的长度
setData(byte[] buf, int offset, int length)    设置此数据包的数据缓冲区。

粘包
发送方若连续几次发送的数据都很少,通常TCP会根据优化算法把这些数据合成一包后一次发送出去,这样接收方就收到了粘包数据。
接收方引起的粘包是由于接收方用户进程不及时接收数据,从而导致粘包现象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值