UDP的无连接

UDP无连接

调用bind()后,一个UDP socket是无连接的,是不能调用send()或者write()函数的,因为目的地址不知道;但是sendto()可以调用,因为sendto()可以带
int __flags, __CONST_SOCKADDR_ARG __addr,
指明对方的IP地址

UDP也通过对一个socket调用connect(),来记录目标的IP地址和端口号。也就是说,可以调用send()或者write().这两个函数会使用在connect()函数中指定的IP和端口号 作为UDP包的目标地址。

调用connect()函数之后,只有你connect()函数中指明的IP和端口号,返回的UDP datagrams才会交给你,其他包都不会传给你。更重要的是,为了接受到ICMP错误,UDP socket必须被connect

在用socket()创建之后,如果你不调用connec()或者bind(), 你就必须在recvfrom()中指定 目标的IP和端口号,否则
你会收到太多的UDP包,很多都不是你想要的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值