【发布时间】:2010-03-17 21:41:10
【问题描述】:
我正在使用 SDL_net 套接字 API 创建服务器和客户端。我可以轻松读取字符串缓冲区,但是当我尝试发送十六进制数据时,recv 获取长度,但我似乎无法读取缓冲区内容。
IPaddress ip;
TCPsocket server,client;
int bufSize = 1024;
char message[bufSize];
int len;
server = SDLNet_TCP_Open(&ip);
client = SDLNet_TCP_Accept(server);
len = SDLNet_TCP_Recv(client,message,bufSize);
这是一个sn-p。缓冲区长度“len”已设置(即消息长度),但我无法获取消息缓冲区中的数据内容。一些示例 bind_transmitter PDU 数据由随机客户端发送到该端口的服务器。我无法读取 PDU (SMPP)。
【问题讨论】:
-
你的意思是二进制数据(相对于数据的字符串表示)?另外,当您说“recv 获取长度”时,您的意思是您先发送数据的长度吗?显示一些代码真的很有帮助。
-
我的意思是十六进制字节。 “recv”返回读取的适当字节数等于发送数据的大小,但接收到的缓冲区似乎是空的
-
没有“十六进制”字节。它可以是 binary 或 text。 “无法获取数据内容”是什么意思?您是否尝试将其打印为字符串?假设它是二进制的,第一个零字节终止字符串。这些可能是基本问题,但根本不清楚您在做什么。
-
我正在尝试开发的是一个简单的 SMPP 套接字侦听器。客户端发送以十六进制八位字节编码的 PDU 数据,我想在我的末端(即套接字侦听器)接收 PDU 并对其进行解码。