【发布时间】:2011-06-24 06:48:37
【问题描述】:
我正在使用 C++ 在 linux 机器上进行网络编程,我想知道如何在 Java(客户端)中为幻数设置 4 字节位模式。另外,如何在 c++ co 中设置相同的位模式,我可以将来自客户端的位模式与服务器端的位模式进行比较。
提前谢谢..
编辑
所以现在我有了这个
byte[] signature = new byte[4];
for(int i=0; i<4; i++){
signature[i] = (byte) 0xA9;
}
如果我在调试器的 for 循环之后查看数组的内部,那么我有
{-89, -89, -89, -89}
我在 C++ 中做了类似的事情
uint8_t m_magicNumberBuffer[4];
magicKeyRead = read(m_fd, m_magicNumberBuffer, SIZE_OF_HEADER);
if(m_magicNumberBuffer[0] == 0xA9 && m_magicNumberBuffer[1] == 0xA9 && m_magicNumberBuffer[2] == 0xA9 && m_magicNumberBuffer[3] == 0xA9){
printf("SocketClient::recvMagicKey, Magic key has been found \n");
break;
}
我以某种方式工作,但不确定我已声明 m_magicNumberBuffer 和无符号整数,但它们在 java 中为负 89。这样做可以吗?
提前致谢。
【问题讨论】:
标签: java c++ linux networking