2013-08-15 5 views
1

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

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

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

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

+0

Что вы, кажется, описываете, это TCP/IP поверх ethernet. –

+1

Почему бы не открыть tcp-соединение из самого C++ (см. Например boost: asio) для отправки/получения данных вместо использования внешней программы? – eci

+0

Я собирался использовать внешнюю программу только потому, что я как бы новичок в программировании на С ++, а использование Putty или Netcat явилось одним из первых предложений, которые я видел при поиске вокруг, прежде чем публиковать здесь. Я расскажу о материалах подключения TCP и посмотрю, что я нахожу. Благодарю. – Eric

ответ

5

Посмотрите на Sockets. Документация предназначена в первую очередь для сред UNIX, но API почти идентичен для окон. Клиент telnet, который вы упомянули, построен с использованием этого API.

Смежные вопросы