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

 
 
> Прием пакетов по 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
Ответов
SysRq
сообщение Jan 14 2013, 04:58
Сообщение #2


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



CODE
SOCKET Socket;

volatile bool stop = false;

// Рабочий поток, разгребаем принятое...

UINT threadLAN(LPVOID foo)
{
fd_set fds;

struct timeval timeout;

while(!stop)
{
timeout.tv_sec = 0;
timeout.tv_usec = 100;

FD_ZERO(&fds);
FD_SET(pDlg->Socket, &fds);

int rc = select(sizeof(fds)*8, &fds, NULL, NULL, &timeout);
if(rc > 0)
{
char rbuf[1024];

SOCKADDR_IN clientaddr;

int len = sizeof(clientaddr);
int sz = recvfrom(pDlg->Socket, rbuf, 1024, 0, (sockaddr *) &clientaddr, &len);
if(sz == /* проверка на размер полученных данных */)
{
/* разгребаем данные в rbuf[] */
}
}
}

return 0;
}

// Инициализация...

bool ok = true;

WSADATA wd;
WSAStartup(1, &wd);

Socket = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
if(Socket == -1)
{
MessageBox(L"Error creating UDP socket");

ok = false;
}

SOCKADDR_IN UDPserveraddr;
memset(&UDPserveraddr,0, sizeof(UDPserveraddr));

UDPserveraddr.sin_family = AF_INET;
UDPserveraddr.sin_port = htons(5520 /* Номер порта */);
UDPserveraddr.sin_addr.s_addr = INADDR_ANY; /* Приём с любого адреса, в т.ч. широковещательные */

int len = sizeof(UDPserveraddr);

if(bind(Socket, (SOCKADDR *) &UDPserveraddr, sizeof(SOCKADDR_IN)) < 0)
{
MessageBox(L"Error binding UDP socket");

ok = false;
}

if(ok)
{
AfxBeginThread(threadLAN, NULL);
}
Go to the top of the page
 
+Quote Post
smk
сообщение Jan 15 2013, 17:23
Сообщение #3


Гуру
******

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



Цитата(SysRq @ Jan 14 2013, 06:58) *

Спасибо. Посоветуйте что почитать про устройство программы Windows Form C# VS2010? Вот в какое место пустого проекта вставить предложенный Ваи код? Простите чайника...


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
SysRq
сообщение Jan 16 2013, 07:51
Сообщение #4


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Цитата(SysRq @ Jan 14 2013, 06:58) *
Вот в какое место пустого проекта вставить предложенный Ваи код?
Оно не C#, оно C\C++ с лёгким налетом MFC (к сути отношения не имеет, но в коде упомянут).
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   Подскажите по простому, в чем разница между сервер...   Dec 8 2012, 05:43
|- - Ken@t   Цитата(smk @ Dec 8 2012, 09:43) Подскажит...   Dec 8 2012, 06:03
|- - smk   Цитата(Ken@t @ Dec 8 2012, 08:03) Всё сме...   Dec 8 2012, 06:18
|- - Ken@t   Хм. Наверно так , 1. Установите VS2010 C# , возь...   Dec 8 2012, 07:09
|- - smk   Цитата(Ken@t @ Dec 8 2012, 09:09) Хм. На...   Dec 8 2012, 07:14
||- - Ken@t   Цитата(smk @ Dec 8 2012, 11:14) Все это п...   Dec 8 2012, 08:48
||- - smk   Цитата(Ken@t @ Dec 8 2012, 10:48) Мне пло...   Dec 8 2012, 09:47
||- - Ken@t   Монстр на managed C++. на шарпе давал , что было ...   Dec 8 2012, 15:02
||- - smk   Цитата(Ken@t @ Dec 8 2012, 17:02) Монстр ...   Dec 9 2012, 10:17
||- - 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
- - 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 Текстовая версия Сейчас: 28th July 2025 - 07:24
Рейтинг@Mail.ru


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