有没有办法让C中的连接字符串用符号\ 0分隔?
例如。我正在创建一个简单的程序,它包含一个客户端(在Java中)和一个服务器(在C中)。 java客户端发送一条消息,其中包含两个“部分”,操作(例如REGISTER)和参数(USERNAME)。然后,服务器必须识别操作和参数并执行一些操作。
问题是,操作和参数(两个字符串)都必须以\ 0符号结束,但这样做会使服务器只识别操作(因为当它从客户端收到消息时,当它找到\ 0符号时停止读取。
有没有办法从客户端接收消息“OPERATION \ 0PARAMETER \ 0”并识别OPERATION的字符串和PARAMETER的字符串?
PD:我正在用TCP套接字实现这个程序,在客户端我使用printwriter来发送消息。
PD2:消息不能超过256字节
提前致谢
答案 0 :(得分:1)
只需继续调用recv
(在缓冲区中累积数据),直到您收到的数据包含两个零字节。完成后,解析收到的数据以提取两个字符串。
清空缓冲区。
调用recv
将(更多)数据读入缓冲区。
计算缓冲区使用部分中的零字节数。如果小于2,请转到步骤2.
从缓冲区中提取两个字符串。一个从缓冲区的开头开始。另一个在第一个零字节后开始。