我的 C++ 客户端 - Java 服务器应用程序出现了一个小问题。 套接字成功连接,并传输了多条消息,但接下来是这部分:
msgBuilder<<"TASK?\n";
mymsg = msgBuilder.str();
send(tcp_sock,mymsg.c_str(),8,0);
msgBuilder.str("");
msgBuilder.clear();
java端读取
msg = in.readLine();
while(!(msg.equals("TASK?"))){
System.out.println("Got "+msg+" expected TASK?");
msg = in.readLine();
}
问题是,它读取了两个我认为是空字符的字符,出于某种原因我无法将其粘贴到此处。 我想我可以通过切换到“包含”来克服它,但我想知道是什么原因造成的?
最佳答案
send(tcp_sock,mymsg.c_str(),8,0);
应该是
send(tcp_sock,mymsg.c_str(),mymsg.length(),0); // or size() or whatever it is. Not 8.
关于java - TCP 消息中的垃圾 - C++/Java 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24049748/