Эквивалент Java readInt () в C? - PullRequest
1 голос
/ 14 октября 2010

С одной стороны у меня есть Java-клиент, записывающий целые числа в свой выходной поток:

int a = 20;
dataout.writeInt(a);
dataout.flush();

С другой стороны, у меня есть сервер C, прослушивающий соединение:

int client = accept(...);

Как прочитать int, отправленный Java?

Если бы у меня был сервер Java, я мог бы легко написать:

int a = dataIn.readInt();

Как это сделать в C?

спасибо

Ответы [ 3 ]

1 голос
/ 14 октября 2010

Считайте его в буфер символов и используйте atoi() для преобразования строки в целое число.

0 голосов
/ 14 октября 2010

fscanf должно работать, если вы не возражаете против отправки в виде простого текста:

fscanf(dataIn, "%d", &a);

Правила для простого текста :-) Обязательно отправьте '\ n' (или что-то не цифру) из источника до сброса.

0 голосов
/ 14 октября 2010

Вы можете использовать функцию чтения, но вы должны быть осторожны, потребляя символы sizeof (int) из сокета, а затем вам нужно беспокоиться о порядке байтов.

...