软件协议主要分为以下几类,涵盖网络通信、开源授权及商业合作等场景:
一、网络通信协议
应用层协议 - HTTP:Web浏览器与服务器通信
- FTP:文件传输
- SMTP/POP3/IMAP:电子邮件传输与接收
- DNS:域名解析
传输层协议
- TCP/IP:基础网络通信协议
即时通信协议
- QQ:UDP 8000/8001(自动切换至 TCP 80/443)
- MSN:TCP 1863(登录时使用 HTTPS 443)
- 雅虎通:TCP 5050(自动切换至 23/21/25/110)
二、开源软件协议
GPL(GNU通用公共许可证)
- 代码开源且禁止修改后作为闭源软件发布,具有“传染性”
LGPL(GNU轻量级通用公共许可证)
- 允许商业软件引用开源库,但禁止基于库的二次开发开源
BSD(伯克利软件分发协议)
- 高度自由,允许修改后开源或专有,需保留原协议声明
Apache许可证
- 开源且兼容商业使用,允许修改和分发
三、商业合作协议
定制软件开发协议:
明确软件功能、使用范围及知识产权归属,例如“直连通”软件的委托开发协议
以上分类覆盖了软件开发的多个关键领域,实际应用中需根据具体需求选择合适协议。