缓冲区的目的是什么 = ""

What is the purpose of buffer = ""

本文关键字:是什么 缓冲区      更新时间:2023-10-16

我记得读过关于这行代码使用的解释,但在过去的一周里,我读了太多关于套接字的书,以至于我再也找不到了。

我确实记得在书中,他们用=\0写代码,然后说最好是1

我试着搜索它,但并没有成功,这是我正在阅读的一段代码,它是在中使用的

 nread = recv(newsock, buffer, 25, 0);
 buffer[nread] = '';

它将接收到的缓冲区转换为NUL终止的C字符串,可以与strlen, strcpy, etc.一起使用我假设您显示的代码仅用于说明目的,而不是生产代码,因为您没有检查recv的返回值,它可以是-1。如果发生这种情况,将导致内存损坏。

这是C/C++null终止符,表示字符数组中内容的结束。

http://en.wikipedia.org/wiki/Null-terminated_string

这表示字符串在该字节结束。在这种情况下是最后一个。

\0是空字符。

这样你就不会收到像"这是我的信息。aG¥(Ag4h98av¥"G#¥"这样的垃圾。想象一下这个字符串的末尾有一个\0。

在处理网络时,您通常希望像整数一样发送数据,最常见的做法是以二进制而非明文发送数据。例如,一个整数可能看起来像"$%\0n"。4个字节,但第三个是\0。因此,您必须考虑到可能存在\0。因此,不应将数据的二进制表示存储为字符串,而应将其存储为缓冲区/字符串流。

当然,也许你不想打印出它的二进制表示。但你必须记住它。也许你想把它打印出来,谁知道呢。