我有一个将JSON字符串发送到Java客户端的C++套接字服务器。对于Java部分我用下面的代码:Java Socket Read在第二次读取时返回奇怪字符
BufferedReader in = new BufferedReader(new InputStreamReader(soc.getInputStream()));
while((inString = in.readLine()) != null) {
Log.i("JSON", inString);
C++代码:
WSADATA wsa;
SOCKET s, new_socket;
struct sockaddr_in server, client;
int c;
if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0) { return false; }
if ((s = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) { return false; }
server.sin_family = AF_INET;
server.sin_addr.s_addr = INADDR_ANY;
server.sin_port = htons(13377);
if (bind(s, (struct sockaddr *)&server, sizeof(server)) == SOCKET_ERROR) { return false; }
listen(s, 3);
c = sizeof(struct sockaddr_in);
new_socket = accept(s, (struct sockaddr *)&client, &c);
if (new_socket == INVALID_SOCKET) { return false; }
while (listenSocket) {
if(...){
char sendData[] = "hallo";
send(new_socket, sendData, sizeof(sendData), NULL);
}
当接收到第一次一切都按计划进行接收。但是,第二次它只打印出正方形“ ”中的问号。那是因为我发送了一个2048个字符的char数组,它可能只包含比这个数量更少的数字,或者这个问题会是什么?
请同时提供您的C++代码。 https://stackoverflow.com/help/mcve – Tezirg