网络编程-开发注意要点

将近做了一年的网络编程,串口、USB通讯的开发,主要是负责处理具体的通讯逻辑,提供给C#和android等上层应用相关的API

现总结一下具体网络编程需要注意的关键点,随着开发的深入,以后会不断增加:

要点:
一、网络编程框架的选择、选择原始socket,还是成熟的网络库boost asio,libevent,muduo,libuv,poco等。
二、通讯模式选择TCP还是UDP,sokcet选择阻塞还是非阻塞,调用方式选择异步调用还是同步调用。
三、超时处理的相关问题,如果是TCP,需要处理TCP收发包的完整性,防止粘包,如果是阻塞socket,需要关注内核缓冲区满的情况,设置超时,连接的建立,断开等的处理。
四、异步方式缓冲区buffer的设计,数据包的处理,比如发送端发送过快,接收端接受较慢等问题在缓冲区如何处理。
五、通讯协议格式的设计,使用xml,json,protobuffer还是其他二进制协议格式。
六、通讯协议是否需要确认包的应答机制,心跳的设计。

七、多线程编程的问题。

八、无论采用epoll模式还是select模式,都需要设计应用层缓冲区,为了防止busy loop,需要一次性从内核缓冲区中将接受到的包读取完毕。

 

转载于:https://www.cnblogs.com/Forever-Kenlen-Ja/p/7992456.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值