基于UDP 实现客户端之间通信【2】

在写面向UDP连接的 socket 的通信程序时,我先总结归纳一些关于面向TCP和UDP连接的socket 通信程序的相关知识:

面向TCP连接的 socket 通信程序:

服务端:创建套接字,指定协议族(sockaddr_in),绑定,监听,接受连接,发送或接受数据,关闭连接;

        客户端:创建套接字,指定协议族,连接(connect),发送或接受数据,关闭连接;

TCP在接受数据时:write/send/sendto, read/recv/recvfrom都可以用, 通常会用send, recv;

但在面向UDP的socket程序中,发送数据时用sendto的话,就不用connect了,但是在面向TCP的程序中

,在发送数据时,即使用sendto,也必须用connect

面向UDP连接的socket通信程序:

服务端:创建套接字,指定协议族(sockaddr_in),绑定(不需要listen和accept),发送或接收数据;

客户端:创建套接字,指定协议族,连接(和TCP的客户端步骤一样),发送或接受数据;

UDP常用sendto,recvfrom; 注意:用sendto时,就不用connect了(用了也没事),其他的(write, send)

必须用connect;

补充:1、无论是TCP还是UDP,默认情况下创建的都是阻塞模式的套接字,执行到(accept,connect, write/send/sento,read/recv/recvfrom)

  等语句时,会一直等待(connect)有点列外,它连接一段时间,如果连接不成功,会以错误形式返回,不会一直等待

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值