Я пытаюсь получить клиент C99 для связи с сервером Java. Однако данные, принимаемые сервером Java, не совпадают с данными, которые были переданы. (т. е. @ x @ Ó fl/ú. @¨ Û¢ÁBp'¡`Ô fl /)Клиент C99, взаимодействующий с Java-сервером
Я созерцал что это проблема с кодировкой, однако я ударил по кирпичной стене. Я пробовал тестировать две программы, чтобы сделать вывод, что сервер Java способен связываться с клиентом Java, а клиент C может связываться с сервером C.
Однако я не могу заставить сервер Java связываться с клиентом C.
Java-код: Код
serverSocket = new ServerSocket(port);
Socket sock = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
String inputString = in.readLine();
System.out.println(inputString);
C:
struct sockaddr_in sin;
struct hostent *host;
host = gethostbyname(hostname);
bzero(&(sin.sin_zero),8);
sin.sin_port = htons(port);
sin.sin_addr = *((struct in_addr *)host->h_addr);
sin.sin_family = AF_INET;
sock = socket(AF_INET, SOCK_STREAM, 0);
if(connect(sock, (struct sockaddr *)&sin,sizeof(struct sockaddr_in)) == -1)
...
send(sock, &message, strlen(message)+1, 0);
EDIT: Я пытался отправив слово 'TEST' между двумя хостов без успеха.
FIXED: У меня был амперсанд перед переменной сообщения, когда я проходил мимо него.
Должно быть:
send(sock, message, strlen(message)+1, 0);
Что такое кодирование сообщения от C? – nhahtdh
Итак, мой ответ был правильным;) – Morpfh