gpt4 book ai didi

java - 在 C 中以\0 结尾的串联字符串

转载 作者:可可西里 更新时间:2023-11-01 02:51:45 27 4
gpt4 key购买 nike

有没有办法在 C 中连接字符串,并在它们之间用符号\0 分隔?

例如。我正在创建一个由客户端(Java 语言)和服务器(C 语言)组成的简单程序。 java 客户端发送的消息包含两个“部分”,操作(例如注册)和参数(用户名)。然后,服务器必须识别操作和参数并进行一些操作。

问题是,操作和参数(都是字符串)必须以\0 符号结尾,但这样做会使服务器只识别操作(因为当它从客户端接收到消息时,它在找到\0 符号时停止读取)。

有没有办法以"OPERATION\0PARAMETER\0"的形式接收来自客户端的消息,并识别OPERATION 的字符串和PARAMETER 的字符串?

PD:我正在用 TCP 套接字实现这个程序,在客户端我正在使用 printwriter 发送消息。

PD2:消息不能超过256字节

提前致谢

最佳答案

只需继续调用 recv(将数据累积到缓冲区中),直到您收到的数据包含两个零字节。一旦完成,解析接收到的数据以提取两个字符串。

  1. 清空缓冲区。

  2. 调用 recv 将(更多)数据读入缓冲区。

  3. 计算缓冲区已用部分中零字节的数量。如果小于 2,则转到第 2 步。

  4. 从缓冲区中提取两个字符串。一个从缓冲区的开头开始。另一个在第一个零字节之后开始。

关于java - 在 C 中以\0 结尾的串联字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29461705/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com