目录
摘要
网络编程在实际的工作中很常用,一般占据项目开发的一半时长,弄懂它不论是提高工作效率还是面试、找工作都有利。
网络编程这部分计划用20个篇幅记录学习、实战笔记,尽情关注。
1. Socket(套接字)的定义
“socket就是插座,运行在计算机中的两个程序通过socket建立起一个通道,数据在通道中传输。
socket把复杂的TCP/IP协议族隐藏了起来,对程序员来说,只要用好socket相关的函数,就可以完成网络通信。”——摘自C语言技术网
socket的分类
“socket提供了流(stream)和数据报(datagram)两种通信机制、,即流socket和数据报socket。
流socket基于TCP协议,是一个有序、可靠、双向字节流的通道,传输数据不会丢失、不会重复、顺序也不会错乱。
数据报socket基于UDP协议,不需要建立和维持连接,可能会丢失或错乱。UDP不是一个可靠的协议,对数据的长度有限制,但是它的效率比较高。”——摘自C语言技术网
1.1 创建Socket
实际上就是一个结构体
一个程序中可以创建多少个socket?
1024,单个进程打开的文件数是可以通过参数配置的,一般是1024个。
1.2 准备知识
1.2.1 字节序
1.2.2 字节序转换函数
转换练习:
1.2.3 通用地址结构
1.2.4 因特网地址结构
1.2.5 IPv4地址族和字节地址间的转换
1.2.6 填写IPv4地址族结构案例
1.3 实际编程
1.3.1 TCP客户端服务器编程模型
1.3.2 套接字与地址绑定
1.3.3 建立连接
TCP的三次握手
send函数
TBD.
recv函数
TBD.
TBD.
参考资料
【1】海同教育,Linux系统编程系列课程
【2】C语言技术网