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

网友投稿 1178 2022-08-05

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

c语言怎么进行网路编程?(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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何提高c语言水平?(有什么方法可以提升C语言水平?)(学好C语言的方法)
下一篇:python教程哪个好?(有哪些地方可以学习Python)(python适合哪些人学)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~