реклама на сайте
подробности

 
 
> Прием пакетов по UDP (Visual Studio), Windows Form
smk
сообщение Dec 7 2012, 06:35
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Поскольку программист я не очень то опытный, прошу помощи и подсказки у знающих людей. Очень надеюсь, что это не будет трудно. Мне для анализа некоторых процессов нужно принимать от прибора по UDP пакеты с 64 байтами данных. В дальнейшем их нужно обрабатывать, но это я уже осилю сам. Мне сейчас очень необходима помощь собственно в организации приема этих пакетов. Они идут с периодичностью 35 мС и пропускать нельзя ни одного. Помогите интегрировать в пустой проект Visual Studio 2008 необходимый код для приема. Ну тоесть правильно открыть сокет - адрес 192.168.1.100 порт 5000. Нужно чтобы данные ложились в массив из 64 элементов unsigned char. Ну и как-то вызывался обработчик после каждого принятого пакета. Я пересмотрел кучу примеров, но так и не нашел ни одного интегрированного в Windows Form App. Очень прошу помочь сделать рыбу для приема, а дальше я сам. Пример пустого проекта, в который нужно встроить прием, прилагаю. Огромное Спасибо!

Прикрепленный файл  My_UDP.rar ( 1.88 мегабайт ) Кол-во скачиваний: 188


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
smk
сообщение Dec 8 2012, 05:43
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Подскажите по простому, в чем разница между сервером и клиентом UDP, в т.ч. с позиции программирования?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Ken@t
сообщение Dec 8 2012, 06:03
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 5-08-05
Пользователь №: 7 382



Цитата(smk @ Dec 8 2012, 09:43) *
Подскажите по простому, в чем разница между сервером и клиентом UDP, в т.ч. с позиции программирования?

Всё смешалось в кучу , кони, люди.
Сервер : аппаратно - программный комплекс обеспечивающий обслуживание запросов клиентов, иными словами - сервер не иницирует запросов. Примером может служить службы серверов web, mail, time и т. д.

UDP - протокол пользовательски датаграмм , тоесть отправка сообщений от хоста к хосту IP сети без необходимости предварительного сообщения для установки специальных каналов передачи или путей данных.





--------------------
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее?
Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!
Go to the top of the page
 
+Quote Post
smk
сообщение Dec 8 2012, 06:18
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата(Ken@t @ Dec 8 2012, 08:03) *
Всё смешалось в кучу , кони, люди.
Сервер : аппаратно - программный комплекс обеспечивающий обслуживание запросов клиентов, иными словами - сервер не иницирует запросов. Примером может служить службы серверов web, mail, time и т. д.

UDP - протокол пользовательски датаграмм , тоесть отправка сообщений от хоста к хосту IP сети без необходимости предварительного сообщения для установки специальных каналов передачи или путей данных.

Ага... Спасибо. Я вот тут набросал кое что. Компилируется без ошибок. Теперь вопрос как прием организ0овать. Я так понимаю, что читать нужно в бесконечном цикле и при успешной вычитке складывать в буфер и обрабатывать. Так?

Собственно то что пока есть:
Код
// Test_Form.cpp: главный файл проекта.

#include "stdafx.h"

#include<stdio.h>
#include<string.h>
#include<winsock2.h>
#include<windows.h>

#define PORT  31337
#define SERVERADDR  "127.0.0.1"
#pragma comment (lib, "ws2_32.lib")

#include "Form1.h"

using namespace Test_Form;



[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
    char buff [ 10*1024 ];
    //Подключение библиотеки
    if (WSAStartup ( 0x202, ( WSADATA  *) &buff [ 0 ] ))
       {
           return  -1;
       }
    //Создание сокета
    SOCKET  name_sock=socket ( AF_INET, SOCK_DGRAM, 0 );
    if ( name_sock==INVALID_SOCKET )
        {
          WSACleanup ( );
          return -1;
        }


    // Включение визуальных эффектов Windows XP до создания каких-либо элементов управления
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);

    // Создание главного окна и его запуск
    Application::Run(gcnew Form1());
    return 0;
}




--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Ken@t
сообщение Dec 8 2012, 07:09
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 5-08-05
Пользователь №: 7 382



Хм.
Наверно так ,
1. Установите VS2010 C# , возьмите книжку Рихтера, почитайте об CLR и С# в частности
2. Возмите любую книгу по программрованию Windows GUI, почитайте о событийной модели.
3. Пример рабочий передатчика и приёмника UDP пакетов , я вам дал.

Зы: Киев большой, найди рядом программиста он на пальцах вам обьяснит. Программирование , пока , не ваше.


--------------------
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее?
Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!
Go to the top of the page
 
+Quote Post
smk
сообщение Dec 8 2012, 07:14
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата(Ken@t @ Dec 8 2012, 09:09) *
Хм.
Наверно так ,
1. Установите VS2010 C# , возьмите книжку Рихтера, почитайте об CLR и С# в частности
2. Возмите любую книгу по программрованию Windows GUI, почитайте о событийной модели.
3. Пример рабочий передатчика и приёмника UDP пакетов , я вам дал.

Зы: Киев большой, найди рядом программиста он на пальцах вам обьяснит. Программирование , пока , не ваше.

Все это правильно и здорово, но мне надо данные с прибора получать для анализа. Тонкости программирования это конечно интересно, однако обстоятельства времени на самообразование не оставляют. Пока нужно хоть как-то. Совершенствоваться буду потом. Уж простите...


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Ken@t
сообщение Dec 8 2012, 08:48
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 5-08-05
Пользователь №: 7 382



Цитата(smk @ Dec 8 2012, 11:14) *
Все это правильно и здорово, но мне надо данные с прибора получать для анализа. Тонкости программирования это конечно интересно, однако обстоятельства времени на самообразование не оставляют. Пока нужно хоть как-то. Совершенствоваться буду потом. Уж простите...

Мне плоско-параллельно, но вы не сможите решить эту задачу, ни как.


--------------------
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее?
Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!
Go to the top of the page
 
+Quote Post
smk
сообщение Dec 8 2012, 09:47
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата(Ken@t @ Dec 8 2012, 10:48) *
Мне плоско-параллельно, но вы не сможите решить эту задачу, ни как.

Собственно потому и прошу помощи.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Ken@t
сообщение Dec 8 2012, 15:02
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 5-08-05
Пользователь №: 7 382



Монстр на managed C++.

на шарпе давал , что было проще, удобней, нативней.


Прикрепленные файлы
Прикрепленный файл  UDP_Solution.zip ( 1.61 мегабайт ) Кол-во скачиваний: 47
 


--------------------
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее?
Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!
Go to the top of the page
 
+Quote Post
smk
сообщение Dec 9 2012, 10:17
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата(Ken@t @ Dec 8 2012, 17:02) *
Монстр на managed C++.

на шарпе давал , что было проще, удобней, нативней.

Спаисбо. Это то что нужно, только не получается на форму UDP Receiver добавить своих кнопок, графиков и т.п. Это где галку снять? Да и данные хотелось бы видеть в виде массива из 64 байт, пытаюсь понять как это сделать. Но и за это Вам огромное спасибо.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Ken@t
сообщение Dec 9 2012, 12:14
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 5-08-05
Пользователь №: 7 382



Цитата(smk @ Dec 9 2012, 14:17) *
Спаисбо. Это то что нужно, только не получается на форму UDP Receiver добавить своих кнопок, графиков и т.п. Это где галку снять? Да и данные хотелось бы видеть в виде массива из 64 байт, пытаюсь понять как это сделать. Но и за это Вам огромное спасибо.


ТЗ в студию. И это, поставьте себе VS2010 express C#.


--------------------
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее?
Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!
Go to the top of the page
 
+Quote Post
smk
сообщение Dec 10 2012, 06:17
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата(Ken@t @ Dec 9 2012, 14:14) *
ТЗ в студию. И это, поставьте себе VS2010 express C#.

Ставлю. ТЗ такое. Прибор шлет 64 байта данных. Часть пока не задействованы, но остальные представляют собой разбитые на байты unsigned int и unsigned short. Нужно их "склеивать" и писать в файл, параллельно обрабатывая и выводя в виде графиков и промежуточных результатов. Ну примерно так... Обработку я постараюсь осилить самостоятельно, но для быстроты могут понадобиться консультации по некоторым вопросам, напримет как писать файл с именем, заданным "на лету". Ну вот я скажем хочу сохранить сессию которая чем-то для меня примечательна. Я задаю имя файла и командую "писать". Программа должна писать скажем кусками по 10 Мбайт инкрементируя имя файла. В последствии читать. Далее понадобится возможность коммандовать прибору некоторые комманды, скажем отправляя тот же блок данных из 64 байт. Ну пока примерно так.
Вообще мне Windows Form за тем и нужен чтобы проще было всякие графики и таблички делать.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Ken@t
сообщение Dec 10 2012, 09:00
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 5-08-05
Пользователь №: 7 382



Цитата(smk @ Dec 10 2012, 10:17) *
Ставлю. ТЗ такое. Прибор шлет 64 байта данных. Часть пока не задействованы, но остальные представляют собой разбитые на байты unsigned int и unsigned short. Нужно их "склеивать" и писать в файл, параллельно обрабатывая и выводя в виде графиков и промежуточных результатов. Ну примерно так... Обработку я постараюсь осилить самостоятельно, но для быстроты могут понадобиться консультации по некоторым вопросам, напримет как писать файл с именем, заданным "на лету". Ну вот я скажем хочу сохранить сессию которая чем-то для меня примечательна. Я задаю имя файла и командую "писать". Программа должна писать скажем кусками по 10 Мбайт инкрементируя имя файла. В последствии читать. Далее понадобится возможность коммандовать прибору некоторые комманды, скажем отправляя тот же блок данных из 64 байт. Ну пока примерно так.
Вообще мне Windows Form за тем и нужен чтобы проще было всякие графики и таблички делать.


Это не ТЗ, даже не сочинение по свободной форме, это херь полная.
Структура пакета ,
uint и ushort размерность в битах , big или little endian, бинарное представление образца данных ?
Какие графики, ординаты, масштабирование ?
промежуточные результаты - результаты чего ?



--------------------
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее?
Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- smk   Прием пакетов по UDP (Visual Studio)   Dec 7 2012, 06:35
- - Ken@t   Во первых UDP использует простую модель передачи, ...   Dec 7 2012, 11:01
|- - smk   Цитата(Ken@t @ Dec 7 2012, 14:01) Во перв...   Dec 7 2012, 13:50
||- - Serg76   Цитата(smk @ Dec 7 2012, 16:50) VS2008 го...   Dec 7 2012, 14:09
||- - Ken@t   Цитата(smk @ Dec 7 2012, 17:50) VS2008 го...   Dec 7 2012, 14:52
||- - smk   Цитата(Ken@t @ Dec 7 2012, 16:52) Откуда ...   Dec 7 2012, 16:06
|- - smk   Цитата(Ken@t @ Dec 7 2012, 13:01) Во перв...   Jan 11 2013, 16:19
- - smk   Поставил С++. Не открывает. Может как-то по другом...   Dec 7 2012, 17:27
|- - Serg76   Цитата(smk @ Dec 7 2012, 20:27) Поставил ...   Dec 7 2012, 17:49
||- - smk   Цитата(Serg76 @ Dec 7 2012, 19:49) у меня...   Dec 7 2012, 18:53
||- - Serg76   Цитата(smk @ Dec 7 2012, 21:53) А под плю...   Dec 7 2012, 19:34
|- - Ken@t   Цитата(smk @ Dec 7 2012, 21:27) Поставил ...   Dec 8 2012, 04:10
|- - smk   Цитата(Ken@t @ Dec 8 2012, 10:09) Хм. На...   Aug 11 2015, 14:50
- - bolden   По поводу клиента и сервера TCP и UDP, можно прочи...   Dec 9 2012, 13:19
- - smk   Не могу побороть ситуацию Как ни ставил - не стано...   Dec 12 2012, 07:30
|- - Ken@t   Структура пакета , uint и ushort размерность в би...   Dec 15 2012, 07:58
- - smk   Прошу извинения за задержку. Наконец-то поставил ...   Jan 3 2013, 18:07
- - Cosmojam   Простите великодушно за провокацию холивара, но вс...   Jan 5 2013, 13:09
|- - smk   Цитата(Cosmojam @ Jan 5 2013, 15:09) Прос...   Jan 7 2013, 19:19
|- - Cosmojam   Цитата(smk @ Jan 7 2013, 22:19) Я могу ош...   Jan 8 2013, 03:48
|- - smk   Цитата(Cosmojam @ Jan 8 2013, 05:48) Не с...   Jan 8 2013, 19:25
- - SysRq   CODESOCKET Socket; volatile bool stop = false; /...   Jan 14 2013, 04:58
|- - smk   Цитата(SysRq @ Jan 14 2013, 06:58) Спаси...   Jan 15 2013, 17:23
|- - SysRq   Цитата(SysRq @ Jan 14 2013, 06:58) Вот в ...   Jan 16 2013, 07:51
- - smk   Мне бы в самой структуре проекта разобраться. Вот ...   Jan 16 2013, 17:28
|- - Manfred   Мне было проще разобраться на примерах из http://w...   Feb 1 2013, 19:36
- - smk   Обязательно посмотрю, спасибо! В целом на пере...   Feb 2 2013, 06:41


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 23:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01532 секунд с 7
ELECTRONIX ©2004-2016