最近在做一个项目,关于java和c++通讯方面的.通讯时发给服务器端(c++)的数据大小不一致,后来检查发现可能是我这边的java数据包定义的有错.现在给出了c++服务器端数据包的定义:
struct PACKAGE
{
//包头标志
UINT nBeginFlag; //包头头标志 long lPackageID; //包标识ID。(每个包的ID必须不同,不过进程重新启动后,ID可以重新开始)
UINT nPackageLen; //包的总长度
UINT nBuffLen; //包缓存区长度(byteBuff 区的大小)
char chSocketID[SOCKET_ID_LENTH];//套接的ID号。 //包尾标志
UINT nEndFlag; //包头尾标志 UINT nSessionID; //会话ID
BYTE byteBuff[INITBUFFLENTH];//数据包缓冲区
};
typedef PACKAGE* PPACKAGE;请问一下,在客户端,我该用java怎么去定义这个数据包,才能让两边接受的数据包大小一致呢?在协议上有什么细节需要注意呢?谢谢大家!
1是傳過來的數據不完整 2是數據沒有完全還原
如果是使用Socket傳輸 Java這邊用InputStream接 情況1就不會出現
如果是情況2的話 可能就是Java這邊類的定義出問題了 協議不一緻
具体没做过,没经验
比较不容易出错.