编程学习网 > 编程语言 > C/C++开发 > c语言怎么进行网路编程?(C语言网络编程知识梳理)
2022
03-10

c语言怎么进行网路编程?(C语言网络编程知识梳理)

C语言是一个历史非常悠久的编程语言,不管是简洁紧凑的语言还是丰富的数据类型都广泛用于许多系统开发,因此,许多人都想要学习C语言。同时,C语言还是计算机专业学生必学的编程语言。

可是,对于C语言的网络编程,许多人仍然不理解。所以今天编程学习网就来和大家聊聊C语言中的网络编程

在C语言中,进行网络编程的主要是socket

read()

read 函数是负责从 fd 中读取内容。

当读成功时,read 返回实际所读的字节数。

如果返回的值是 0 表示已经读到文件的结束了,小于 0 表示出现了错误。

如果错误为 EINTR 说明读是由中断引起的;如果是 ECONNREST 表示网络连接出了问题。

write()

write 函数将 buf 中的 nbytes 字节内容写入文件描述符 fd。

成功时返回写的字节数。失败时返回 -1,并设置 errno 变量。

在网络程序中,当我们向套接字文件描述符写时有俩种可能。

(1)write 的返回值大于 0,表示写了部分或者是全部的数据。

(2)返回的值小于 0,此时出现了错误。

如果错误为 EINTR 表示在写的时候出现了中断错误;如果为 EPIPE 表示网络连接出现了问题(对方已经关闭了连接)。


Socket 中 TCP 的三次握手建立连接

我们知道 TCP 建立连接要进行 “三次握手”,即交换三个分组。大致流程如下:

客户端向服务器发送一个 SYN J

服务器向客户端响应一个 SYN K,并对 SYN J 进行确认 ACK J+1

客户端再想服务器发一个确认 ACK K+1

以上就是“c语言怎么进行网路编程?(C语言网络编程知识梳理)”的详细内容,想要了解更多C语言相关内容欢迎持续关注编程学习网

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取