Мне нужно передать целое число с сервера TCP C с помощью функции write() и получить его на клиенте с помощью функции read().
На моем сервере, скажем
int check = 0
Как я могу отправить его с помощью функции write()? Я попробовал на своем сервере:
if (write(connfd, (const char *)&check, 4)) {
perror("Write Error");
exit(1);
}
И на моем клиенте:
if (n = read(sockfd, &check, 4) > 0) {
printf("ok");
}
Но этот метод не работает и кажется неестественным. Я понимаю, что мне нужно каждый раз передавать буфер, но есть ли способ ускорить процесс?
Кроме того, важно то, что мне нужно создать серверную/клиентскую программу с передачей большого количества переменных. Могу ли я передать несколько переменных одновременно?
РЕДАКТИРОВАТЬ: Когда я говорю, что это не работает, я имею в виду, что получаю «Ошибка записи: успех». connfd и sockfd были объявлены ранее следующим образом:
Сервер:
if ((connfd = accept(listenfd, (struct sockaddr *) NULL, NULL)) < 0) {
perror("Accept Error");
exit(1);
}
Клиент:
if (connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0) {
fprintf(stderr,"Connect Error\n");
exit(1);
}