Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2012, 14:03   #1
василий-
Пользователь
 
Регистрация: 30.08.2012
Сообщений: 19
По умолчанию Сокеты

здравствуйте. мне нужно с компьютера передавать данные на приборы(осциллограф, генератор и тд). пишу на visual studio C++. Вот мое приложение-клиент. подконектиться к приборам получилось. но вот мне необходимо передать значение частоты. это делается через функцию send(). но что-то не получается. напишите пожалуйста недостоющие строки
WSADATA wsaData;
SOCKET mysocket = NULL;
char* ipAddress = "172.28.244.126";
const int ipPort = 5025;

char* buff [ 1024 ];///////////////
//int nsize;/////////////////
// инициализации Winsock
int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
if(iResult != NO_ERROR)
{
MessageBox::Show("Ошибка в WSAStartup");
}
// Создание сокета
mysocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (mysocket == INVALID_SOCKET)
{
MessageBox::Show("Ошибка в сокете");
WSACleanup();
}
sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr(ipAddress);
clientService.sin_port = htons(ipPort);
if(connect(mysocket, (SOCKADDR*) &clientService, sizeof(clientService)))
{
MessageBox::Show("Не удалось подключиться");
WSACleanup();
василий- вне форума Ответить с цитированием
Старый 11.10.2012, 14:24   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

После удачного connect пишите
send(mysocket, "hello", 5, 0);

На месте "hello" и 5 вставьте что нужно - это указатель на данные и их размер.
waleri вне форума Ответить с цитированием
Старый 12.10.2012, 11:56   #3
василий-
Пользователь
 
Регистрация: 30.08.2012
Сообщений: 19
По умолчанию

спасибо. но проблема в другом. эту запись я знаю. а вот как конкретно заставить тот или иной прибор, например, поменять значение частоты
василий- вне форума Ответить с цитированием
Старый 12.10.2012, 12:11   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Мы должны догадаться что за прибор, или вы думаете, что они все одинаковые?
waleri вне форума Ответить с цитированием
Старый 12.10.2012, 12:24   #5
василий-
Пользователь
 
Регистрация: 30.08.2012
Сообщений: 19
По умолчанию

например, осциллограф фирмы Agilent модель DSO 8064A. Там винда на нем. если возможно что подсказать, то буду очень благодарен. в документации к нему ничего об этом не нашел
василий- вне форума Ответить с цитированием
Старый 18.10.2012, 16:48   #6
василий-
Пользователь
 
Регистрация: 30.08.2012
Сообщений: 19
По умолчанию

передаю осциллу такое сообщение
send(mysocket,"*srt", strlen("*srt"),0);
а он не понимает. коннект есть, данные посылаются, но он ничего не делает.
подскажите в чем я не прав
василий- вне форума Ответить с цитированием
Старый 18.10.2012, 17:59   #7
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Откуда инфа что надо слать? Например, каков формат - может нужен crlf в конце, и т.д.
waleri вне форума Ответить с цитированием
Старый 19.10.2012, 10:44   #8
василий-
Пользователь
 
Регистрация: 30.08.2012
Сообщений: 19
По умолчанию

в том то и дело, что понять не могу. знаю только, что по tcp/ip. а вот как конкретно приходят данные разобраться не могу. прибор явно принимает сообщение, но не воспринимает его как команду. подсказал бы кто-нибудь...
василий- вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сокеты.. mrAndersen Общие вопросы Delphi 8 13.07.2010 08:56
Сокеты SL1CK Общие вопросы C/C++ 8 05.10.2009 13:20
Сокеты IICuX123 Общие вопросы .NET 6 27.07.2009 01:27
Сокеты Raz0r Помощь студентам 2 29.04.2009 14:47
сокеты cross Работа с сетью в Delphi 2 21.12.2006 18:12