|
Прием пакетов по UDP (Visual Studio), Windows Form |
|
|
|
Dec 7 2012, 06:35
|
Гуру
     
Группа: Свой
Сообщений: 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
--------------------
Живи днем так, чтобы ночью ты спал спокойно.
|
|
|
|
|
 |
Ответов
|
Dec 8 2012, 06:03
|

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

|
Цитата(smk @ Dec 8 2012, 09:43)  Подскажите по простому, в чем разница между сервером и клиентом UDP, в т.ч. с позиции программирования? Всё смешалось в кучу , кони, люди. Сервер : аппаратно - программный комплекс обеспечивающий обслуживание запросов клиентов, иными словами - сервер не иницирует запросов. Примером может служить службы серверов web, mail, time и т. д. UDP - протокол пользовательски датаграмм , тоесть отправка сообщений от хоста к хосту IP сети без необходимости предварительного сообщения для установки специальных каналов передачи или путей данных.
--------------------
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее? Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!
|
|
|
|
|
Dec 8 2012, 06:18
|
Гуру
     
Группа: Свой
Сообщений: 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; }
--------------------
Живи днем так, чтобы ночью ты спал спокойно.
|
|
|
|
|
Dec 8 2012, 07:09
|

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

|
Хм. Наверно так , 1. Установите VS2010 C# , возьмите книжку Рихтера, почитайте об CLR и С# в частности 2. Возмите любую книгу по программрованию Windows GUI, почитайте о событийной модели. 3. Пример рабочий передатчика и приёмника UDP пакетов , я вам дал.
Зы: Киев большой, найди рядом программиста он на пальцах вам обьяснит. Программирование , пока , не ваше.
--------------------
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее? Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!
|
|
|
|
|
Dec 8 2012, 07:14
|
Гуру
     
Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446

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

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

|
Цитата(smk @ Dec 8 2012, 11:14)  Все это правильно и здорово, но мне надо данные с прибора получать для анализа. Тонкости программирования это конечно интересно, однако обстоятельства времени на самообразование не оставляют. Пока нужно хоть как-то. Совершенствоваться буду потом. Уж простите... Мне плоско-параллельно, но вы не сможите решить эту задачу, ни как.
--------------------
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее? Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!
|
|
|
|
|
Dec 8 2012, 15:02
|

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

|
Монстр на managed C++. на шарпе давал , что было проще, удобней, нативней.
--------------------
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее? Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!
|
|
|
|
|
Dec 9 2012, 10:17
|
Гуру
     
Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446

|
Цитата(Ken@t @ Dec 8 2012, 17:02)  Монстр на managed C++.
на шарпе давал , что было проще, удобней, нативней. Спаисбо. Это то что нужно, только не получается на форму UDP Receiver добавить своих кнопок, графиков и т.п. Это где галку снять? Да и данные хотелось бы видеть в виде массива из 64 байт, пытаюсь понять как это сделать. Но и за это Вам огромное спасибо.
--------------------
Живи днем так, чтобы ночью ты спал спокойно.
|
|
|
|
Сообщений в этой теме
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         Ken@t Цитата(smk @ Dec 9 2012, 14:17) Спаисбо. ... Dec 9 2012, 12:14          smk Цитата(Ken@t @ Dec 9 2012, 14:14) ТЗ в ст... Dec 10 2012, 06:17           Ken@t Цитата(smk @ Dec 10 2012, 10:17) Ставлю. ... Dec 10 2012, 09:00    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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|