Ich habe einen C++ Socket Server, der eine JSON-Zeichenfolge an einen Java-Client sendet. Für die Java Teil verwende ich den folgenden Code:Java Socket Read gibt seltsame Zeichen beim zweiten Lesen zurück
BufferedReader in = new BufferedReader(new InputStreamReader(soc.getInputStream()));
while((inString = in.readLine()) != null) {
Log.i("JSON", inString);
C++ Code:
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);
}
Wenn das erste Mal alles empfangen wird wie geplant erhalten. Beim zweiten Mal werden jedoch nur Fragezeichen in Quadrate " " ausgedruckt. Ist das so, weil ich ein Char-Array von 2048 Zeichen sende, das möglicherweise nur einen geringeren Betrag als das enthält oder was könnte das Problem sein?
Bitte geben Sie auch Ihren C++ Code an. https://stackoverflow.com/help/mcve – Tezirg