java - TCP 消息中的垃圾 - C++/Java 通信

标签 java c++ sockets tcp send

我的 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/

相关文章:

java - 了解使用数组中所有可能组合的递归

java - 如何打印四列数据

c++ - 使用模板类在 C++ 中重载运算符

c# - "Unable to find an entry point named [function] in dll"(c++到c#类型转换)

c++ - "a variable that can be easily mistaken for a constant variable but is in fact a non-constant variable "的例子

c# - 同步比。 .NET 中的异步套接字性能

linux - 当父进程有很多线程、套接字和 IPC 时,在派生(子)进程中调用 system()

java - 需要帮助 - Java If/Else

java - 如何使用AsyncTask解析JSON?

c++ - 限制套接字的最大速度