有没有办法在 C 中连接字符串,并在它们之间用符号\0 分隔?
例如。我正在创建一个由客户端(Java 语言)和服务器(C 语言)组成的简单程序。 java 客户端发送的消息包含两个“部分”,操作(例如注册)和参数(用户名)。然后,服务器必须识别操作和参数并进行一些操作。
问题是,操作和参数(都是字符串)必须以\0 符号结尾,但这样做会使服务器只识别操作(因为当它从客户端接收到消息时,它在找到\0 符号时停止读取)。
有没有办法以"OPERATION\0PARAMETER\0"的形式接收来自客户端的消息,并识别OPERATION 的字符串和PARAMETER 的字符串?
PD:我正在用 TCP 套接字实现这个程序,在客户端我正在使用 printwriter 发送消息。
PD2:消息不能超过256字节
提前致谢
最佳答案
只需继续调用 recv
(将数据累积到缓冲区中),直到您收到的数据包含两个零字节。一旦完成,解析接收到的数据以提取两个字符串。
清空缓冲区。
调用
recv
将(更多)数据读入缓冲区。计算缓冲区已用部分中零字节的数量。如果小于 2,则转到第 2 步。
从缓冲区中提取两个字符串。一个从缓冲区的开头开始。另一个在第一个零字节之后开始。
关于java - 在 C 中以\0 结尾的串联字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29461705/