0
我怀疑这与endianness有关,但我不知道如何解决它。我有一个C++客户端告诉Java服务器它将要发送多少个字节,以便Java服务器在输入流上调用readInt()。然后服务器继续读取其余的数据。Java DataInputStream readInt()从C++客户端获得巨大的价值
目前,如果C++调用服务器:
char l = '3';
BytesSent = send(Socket, &l, 1, 0);
然后相应的Java方面是:
int lBytesSent = m_InDataStream.readInt();
m_AckNack = new byte[lBytesSent];
m_InDataStream.read(m_AckNack)
字节lBytesSent趋于然后只是抛出一个异常时,它的一些巨大的价值来创建阵列(不奇怪)
C++套接字只是简单地打开:
Socket = socket(AF_INET, SOCK_STREAM, 0);
Option = 1000;
setsockopt(Socket, SOL_SOCKET, SO_RCVTIMEO, (char *) &Option, sizeof(Option));
server.sin_family = AF_INET;
server.sin_port = htons(Port);
server.sin_addr.s_addr = INADDR_ANY;
memset(&(server.sin_zero), '\0', 8);
connect(Socket, (sockaddr*)&server, sizeof(server));
和Java方面:
ServerSocket listener = new ServerSocket(port);
Socket server;
server = listener.accept();
删除错误检查的清晰度。
任何建议将是巨大的
非常感谢
马克
谢谢 - 忘记所有关于网络订购 – Mark 2012-02-26 23:32:26