非连接通信的优点:
1. 简单,不需要建立连接
2.灵活,每次消息发送都可以指定到不同的接收者。
3.高效,因为不需要建立和消除连接,避免了大量在网络中的传递消息分组的开销。
4.快速,不需要建立和拆除连接,只有消息本身被发送。
5.具有广播能力,可以将一个消息同时向多个接收者发送。
非连接通信的缺点:
1.通信过程不可靠。
2.多数据报的无序性。
3.消息尺寸有限制。
例子:
涉及到的函数:
你可以查看一下它们怎么用,
man sendto
man recvfrom
例子中使用UDP数据报服务。
server在指定的端口接受time的格式串,然后把结果发回到发送串的源主机。
client 先向指定主机的指定端口发送time的格式串,之后等待其他主机向自己发送数据。
你可能发现了在client中并没有调用bind函数。那么到我们从那个端口等待数据呢?等待那个主机给client发送数据呢?因为bind的作用在于限制用于进程通信的接口。如果我们省略了对bind的调用我们就可以使用任何一个端口进行发送和接受数据。可以向任何主机发送,和从任何主机接受数据。就如同套接口被绑定了通用地址INADDR_NONE,通用端口 0。