Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 5.00
amazingsoul
0 / 0 / 0
Регистрация: 28.07.2009
Сообщений: 37
#1

Связь по TCP - C++

28.07.2009, 13:42. Просмотров 4502. Ответов 25
Метки нет (Все метки)

Здравствуйте , уважаемые программисты.
Я начинающий программист и моя задача состоит в том, чтобы обеспечить связь сервера на котором установлена программа и микроконтроллера, которой по GSM-модему устанавливает TCP-соединение и передает некоторые данные.
Мне необходимо написать программу , которая бы могла слушать порт и принимать данные от контроллера, записывать их в файл. Почитал немного про Indy, но там похоже устанавливается связь Client-Server, то есть программа должна стоять на обоих устройствах. У меня программа ставится только на серверную машину.
Подскажите каким образом можно решить данную задачу , буду благодарен за любую помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2009, 13:42     Связь по TCP
Посмотрите здесь:

Соединение tcp client и tcp server - C++
accept(); bind(); connect(); listen(); socket(); Нужно расположить их в порядке в каком их вызывает (А) сервер (Б) клиент, чтобы...

TCP клиент/сервер - C++
Здравствуйте, прошу вашей помощи) нашел реализацию TCP клиента/сервера, все работает, но есть одно "но". IP адрес в коде прописан через...

Tcp/ip подключение к программе - C++
Написал простое приложение сервер+клиент, передача данных осуществляется по протоколу tcp. Когда комп подключен к интернету (ip выдается...

Работа с TCP/IP протоколами - C++
Здравствуйте! Хочу реализовать свою идею. Но не знаю с чего начать. Подскажите пожалюста, на каком языке лучше написать такую прогу, или...

WinSock tcp client/server - C++
Может у кого то есть пример простой реализации client/server на winsock ? неважно на каком языке. Мне надо что бы сервер отправлял...

Общение игрострой TCP/UDP - C++
Привет всем! Как написать чат, сериализовывать и десериализовывать я знаю. Передавать файлы по FTP. Тоже НЕ могу понять что передавать...

TCP/IP передача писем от сервера клиенту - C++
Есть простейший почтовый сервер и почтовый клиент. Взаимодействие реализовано с помощью отправки констант, означающие например "отправить...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Paulie
Айхрень...
306 / 174 / 4
Регистрация: 02.06.2009
Сообщений: 1,078
28.07.2009, 13:46     Связь по TCP #2
Сокеты Беркли
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
28.07.2009, 15:07     Связь по TCP #3
там похоже устанавливается связь Client-Server
У тебя тоже клиент-сервер. Только ты пишешь сервер и не может изменять код клиента.
Для того чтобы написать нужно знать что именно делает микроконтроллер с сервером ...
amazingsoul
0 / 0 / 0
Регистрация: 28.07.2009
Сообщений: 37
28.07.2009, 20:10  [ТС]     Связь по TCP #4
Цитата Сообщение от odip Посмотреть сообщение
У тебя тоже клиент-сервер. Только ты пишешь сервер и не может изменять код клиента.
Для того чтобы написать нужно знать что именно делает микроконтроллер с сервером ...
Он через модем устанавливает TCP-соединение и передает параметры в виде ASCII-символов.И должен их сохранять в текстовом файлике. Может сделать небольшой чат,только проблема небольшая в том, что IP все время разный у модема. Но если сделать так , чтобы программа слушала порт, то думаю это не важно
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
28.07.2009, 20:24     Связь по TCP #5
И должен их сохранять в текстовом файлике.
Наверное это сервер должен сохранять в файле, а не контроллер ?
программа слушала порт
Сервер слушает порт и принимает все коннекты с любого IP-адреса.

Я только не понял - а что собственно передает микроконтроллер на сервер ?
И для чего это все вообще ?
solar_wind
756 / 747 / 42
Регистрация: 06.07.2009
Сообщений: 2,969
Завершенные тесты: 1
28.07.2009, 20:26     Связь по TCP #6
Цитата Сообщение от amazingsoul Посмотреть сообщение
Он через модем устанавливает TCP-соединение и передает параметры в виде ASCII-символов.И должен их сохранять в текстовом файлике. Может сделать небольшой чат,только проблема небольшая в том, что IP все время разный у модема. Но если сделать так , чтобы программа слушала порт, то думаю это не важно
Я так понял что твоя программа это будет сервер. Микроконтроллер через модем будет связываться сам с твоим сервером и передавать туда данные?
amazingsoul
0 / 0 / 0
Регистрация: 28.07.2009
Сообщений: 37
28.07.2009, 20:35  [ТС]     Связь по TCP #7
Цитата Сообщение от vitaly1981 Посмотреть сообщение
Я так понял что твоя программа это будет сервер. Микроконтроллер через модем будет связываться сам с твоим сервером и передавать туда данные?
Да. Я через AT-команду пишу какой IP имеет сервер и порт по которому происходит соединение. Хотел поставить обычный SQL-сервер, но там все более хитро и сложнее, поэтому подумал что проще создать свой сервер
solar_wind
756 / 747 / 42
Регистрация: 06.07.2009
Сообщений: 2,969
Завершенные тесты: 1
28.07.2009, 20:57     Связь по TCP #8
Цитата Сообщение от amazingsoul Посмотреть сообщение
Да. Я через AT-команду пишу какой IP имеет сервер и порт по которому происходит соединение. Хотел поставить обычный SQL-сервер, но там все более хитро и сложнее, поэтому подумал что проще создать свой сервер
Ну тогда тебе нужно разбираться с сокетами.
Для начала изучи статью по этой ссылке:
http://www.insidepro.com/kk/006/006r.shtml
Вообщем то все не так сложно, пишешь прогу, которая будет слушать на нужном порту. После установки соединения, тебе остается только распознать приходящие пакеты.
amazingsoul
0 / 0 / 0
Регистрация: 28.07.2009
Сообщений: 37
28.07.2009, 21:00  [ТС]     Связь по TCP #9
Цитата Сообщение от vitaly1981 Посмотреть сообщение
Ну тогда тебе нужно разбираться с сокетами.
Для начала изучи статью по этой ссылке:
http://www.insidepro.com/kk/006/006r.shtml
Вообщем то все не так сложно, пишешь прогу, которая будет слушать на нужном порту. После установки соединения, тебе остается только распознать приходящие пакеты.
В сокетах Беркли там клиентская программа передает структуры. Мой контроллер-то что будет передавать?
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
28.07.2009, 21:05     Связь по TCP #10
Клиент передает серверу поток байт.
Ты должен знать какой именно формат у этого потока, чтобы правильно его интерпретировать.
solar_wind
756 / 747 / 42
Регистрация: 06.07.2009
Сообщений: 2,969
Завершенные тесты: 1
28.07.2009, 21:12     Связь по TCP #11
Цитата Сообщение от amazingsoul Посмотреть сообщение
В сокетах Беркли там клиентская программа передает структуры. Мой контроллер-то что будет передавать?
Вопервых почитай про модель OSI http://www.citforum.ru/nets/switche/osi.shtml
Ты сказал что клиент (контроллер) умеет передавать данные по TCP. TCP это потоковый протокол, то есть тебе будет передаваться поток байт. Как принять этот поток на уровне TCP я тебе ссылку дал. Далее следующий этап это расшифровать прикладной протокол контроллера, а это уже личное дело контроллера, нужно искать по техническому описанию данного конкретного контроллера, или узнавать у тех кто с ними уже работал на таком уровне.
amazingsoul
0 / 0 / 0
Регистрация: 28.07.2009
Сообщений: 37
28.07.2009, 21:27  [ТС]     Связь по TCP #12
Цитата Сообщение от odip Посмотреть сообщение
Клиент передает серверу поток байт.
Ты должен знать какой именно формат у этого потока, чтобы правильно его интерпретировать.
А какой примерно?
solar_wind
756 / 747 / 42
Регистрация: 06.07.2009
Сообщений: 2,969
Завершенные тесты: 1
28.07.2009, 21:35     Связь по TCP #13
Цитата Сообщение от amazingsoul Посмотреть сообщение
А какой примерно?
Это знает только контроллер, который передает данные, к TCP это не имеет уже никакого отношения...
amazingsoul
0 / 0 / 0
Регистрация: 28.07.2009
Сообщений: 37
28.07.2009, 22:44  [ТС]     Связь по TCP #14
Цитата Сообщение от vitaly1981 Посмотреть сообщение
Это знает только контроллер, который передает данные, к TCP это не имеет уже никакого отношения...
Итак, разберемся с самого начала. У моего модема есть возможность передать какие-то данные через GPRS по протоколу TCP/IP. Мне нужно принимать эти данные и складывать в файл. Дело в том , что я работал с почтовым протоколом smtp. Подключался к smtp.mail.ru 25 порту и выдавал команды фразы стандартные , HALO и тд. При этом сервер понятия не имел чем я к нему подключаюсь.
Теперь мне нужно подключится уже к моему серверу по 80 порту. А я могу это сделать только создав свой сервер.
Программа будет выглядеть что-то вроде telnet, только с функцией постоянного прослушивания порта. И например будет знать что клиент подключился когда я выдам какую-нибудь фразу. Можно ли так организовать сеанс связи?

Добавлено через 18 минут 41 секунду
Мне нужно сделать нечто подобное smtp . Только по 80 порту и передать просто данные
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2009, 23:11     Связь по TCP
Еще ссылки по теме:

отправка сообщений по TCP на одном компьютере - C++
Добрый день. Хочу сделать что то типа соединения клиент-сервер но на одном компьютере. Соответственно делаю соединение по адресу...

TCP клиент, ошибка при компиляции - C++
в чем может быть проблема может в "ws2_32.lib"? #include <iostream> #include <stdio.h> #include <string.h> #include <winsock2.h> ...

Можно ли по TCP отправить несколько JSON и принять соответственно? - C++
можно ли по TCP отправить несколько JSONов и принять на сервере соответственно??

Связь списков - C++
Доброго времени суток, В процессе решения задачи, встретилась проблема: есть структура struct TStruct { std::string *...

С++ , связь программ - C++
Добрый день, уважаемый форумчане. Хотелось бы потолковать с вами на такую тему: Я - начинающий программист, расскажите мне, каким образом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
28.07.2009, 23:11     Связь по TCP #15
Очень мутные объяснения. Я так и не понял - кто со стороны микроконтроллера управляет подключением к серверу ? Ты сам пишешь этот код для микроконтроллера или у него есть какой-то стандартный алгоритм ?
В начале темы ты пишешь, что можешь писать только код сервера.
Теперь оказывается тебе нужно самому передать данные и получается что ты пишешь и код клиента тоже.
Yandex
Объявления
28.07.2009, 23:11     Связь по TCP
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru