以C语言为例完成一个hello/hi的简单的网络聊天程序
本实验是在ubuntu系统下实现一个简单的客户端和服务端通信的简单demo,以TCP协议为例。 首先介绍API: server用到的API有socket,bind,listen,accept,read,write,close (read和write可以用send和recv替换) client用到的API有socket,connect,read,write,close (read和write可以用send和recv替换) 下面来看一下各个API的声明和描述,用man查看各个api声明: 因为linux系统把一切都当做文件来看待,所以像操作文件一样来操作socket文件描述符,写入数据就是发送数据,读数据就是接收数据,这种做法 符合linux系统的一切都当做文件来看待的设计理念。当然也可以用send和recv函数,read和write底层调用的跟send和recv的实现是一样的。 上面就是各种API的介绍,总结来说; socket函数主要是来定义是使用流数据还是数据报数据,对应的就是TCP和UDP协议,TCP的负载对传输层来说是没有数据结构的概念的, 对于上层调用write函数,只是将数据放到发送缓冲区,每次write就只是把数据放到发送缓冲区的最后,就是排队放在后面,完全没有结构的概念, 没有一次write是属于一个报文,而UDP就是一次发送就是一个报文