Я хочу создать сокет, который может читать некоторые цифры, а не строку, чтобы я мог выполнять некоторые манипуляции с ними. Как я могу отправить целое число вместо строки Это моя текущая программа:Как передать целое число через буфер?
int main(int argc, char *argv[])
{
int sockfd, newsockfd, port, clilen;
struct sockaddr_in serv_addr, cli_addr;
if (argc < 2)
error("ERROR, no port provided\n");
port = atoi(argv[1]);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(port); //host to network
if (bind(sockfd, (struct sockaddr *)&serv_addr,sizeof(serv_addr)) < 0)
error("ERROR binding to socket");
listen(sockfd,2);
clilen = sizeof(cli_addr);
newsockfd = accept(sockfd,(struct sockaddr *)&cli_addr, &clilen);
int n;
void* buffer[256];
n = read(newsockfd,buffer,255);
if (n < 0) error("ERROR reading from socket");
printf("Message received:%d\n",d);
n = write(newsockfd,buffer, strlen((char *)buffer));
if (n < 0)
error("ERROR writing back to socket");
return 0;}
Я попытался это:
int n= 5;
write(newsockfd,&n, sizeof(int));
Но на стороне клиента (также ничтожной * буфер), Безразлично» Кажется, что-то читал. Может ли кто-нибудь помочь мне, как я могу это исправить?
Одним из решений может быть передача строк, а затем преобразование в int и т. Д. Но так ли это?
для удобства чтения и понимания: 1) следовать аксиоме: * только один оператор в строке и (в большинстве) одна переменная декларация за оператор. * 2) последовательно отступать код: отступ после каждого (даже необязательного) открытия скобок '{'. unindent перед каждой (даже необязательной) закрывающей скобками '}'. – user3629249
функции: 'listen()' и 'accept()' должны иметь свои возвращаемые значения, чтобы убедиться, что операция прошла успешно. – user3629249
опубликованный код не компилируется. Помимо всего прочего, отсутствуют все необходимые инструкции '# include'. При задании вопроса о разнообразии: «почему мой код не работает», почтовый код, который является чисто компилируемым, является небольшим и все еще показывает проблему. – user3629249