Отправка данных через Ethernet из C или переполнение стека

Мне нужно отправить и получить некоторые данные через соединение Ethernet из программы на C или C ++. Я полагаю, я мог бы использовать какой-то другой язык, например, Python, если это облегчит задачу. Я работаю на ПК с Windows XP, и переключение на Linux может быть не самым удобным (это компьютер моей работы). Я думаю, что это вариант.

Что мне нужно сделать, это отправить некоторое число, скажем, на данный момент 42, с моего компьютера на ПЛК на другом конце кабеля Ethernet. Я знаю IP-адрес и порт ПЛК. Я могу отправлять и получать данные очень хорошо, когда я ввожу их вручную в Hyperterminal или Putty. Я хотел бы, чтобы программа делала эту отправку и получение. Отправка — это все, что необходимо, но и получение было бы неплохо.

До сих пор я пытался отправить данные с помощью команд в командной строке окна. Я подумал, что если бы это сработало, я мог бы использовать команду system () из C-программы для выполнения этой работы. На данный момент лучшее, что мне удалось сделать, это использовать putty.exe telnet: xxx.xxx.xxx.xxx: yyyy, где x — это IP-адрес ПЛК, а y — номер порта. Это запускает шпаклевку с правильным подключением к ПЛК, но ничего не отправляет. Я видел, кто-то предложил использовать эхо 42 | putty.exe telnet: xxx.xxx.xxx.xxx: гггг, но он просто открыл соединение замазки и ничего не отправил. Кто-то еще предложил использовать net send xxx.xxx.xxx.xxx [сообщение], но это просто продолжало говорить, что имя пользователя не может быть найдено в моем домене.

У кого-нибудь есть предложения о том, куда идти отсюда? Есть ли терминальные программы, в которых есть команды, позволяющие отправлять данные из командной строки? Есть ли команды для отправки данных через замазку из командной строки? Спасибо!

1

Решение

Взгляни на Розетки. Документация предназначена в основном для сред Unix, но API практически идентичен в Windows. Упомянутый вами клиент telnet построен с использованием этого API.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]