|
Прием пакетов по 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 7 2012, 11:01
|

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

|
Во первых UDP использует простую модель передачи, без неявных "рукопожатий" для обеспечения надежности, упорядочивания или целостности данных. Таким образом, UDP предоставляет ненадежный сервис, и датаграммы могут прийти не по порядку, дублироваться или вовсе исчезнуть без следа. Во вторых, проект с передатчиком и приёмником UDP прилагаю. В третьих , когда ж прекратите с этим пропертарным раром баловаться.
--------------------
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее? Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!
|
|
|
|
|
Dec 7 2012, 13:50
|
Гуру
     
Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446

|
Цитата(Ken@t @ Dec 7 2012, 14:01)  Во первых UDP использует простую модель передачи, без неявных "рукопожатий" для обеспечения надежности, упорядочивания или целостности данных. Таким образом, UDP предоставляет ненадежный сервис, и датаграммы могут прийти не по порядку, дублироваться или вовсе исчезнуть без следа. Во вторых, проект с передатчиком и приёмником UDP прилагаю. В третьих , когда ж прекратите с этим пропертарным раром баловаться. VS2008 говорит что приложение создано более новой версией и открывать отказывается. Можно что-то предпринять? Спасибо.
--------------------
Живи днем так, чтобы ночью ты спал спокойно.
|
|
|
|
|
Dec 7 2012, 14:52
|

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

|
Цитата(smk @ Dec 7 2012, 17:50)  VS2008 говорит что приложение создано более новой версией и открывать отказывается. Можно что-то предпринять? Спасибо. Откуда у вас 2008, уму не растяжимо ? http://www.microsoft.com/visualstudio/rus/...io-2010-express скачайте и установите бесплатную версию Visual C# 2010 Express .
--------------------
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее? Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!
|
|
|
|
|
Dec 7 2012, 17:49
|
Профессионал
    
Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775

|
Цитата(smk @ Dec 7 2012, 20:27)  Поставил С++. Не открывает. Может как-то по другому сориентируете как и что в пустой проект дописать? у меня все открывает без проблем в 10-ой студии, винда 7-ка. Цитата(smk @ Dec 7 2012, 20:27)  Поставил С++. Не открывает. Может как-то по другому сориентируете как и что в пустой проект дописать? Проект на С#, а не на плюсах качать отсюда http://www.microsoft.com/visualstudio/rus/...#d-2010-express
|
|
|
|
|
Dec 7 2012, 18:53
|
Гуру
     
Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446

|
Цитата(Serg76 @ Dec 7 2012, 19:49)  у меня все открывает без проблем в 10-ой студии, винда 7-ка. Проект на С#, а не на плюсах качать отсюда http://www.microsoft.com/visualstudio/rus/...#d-2010-expressА под плюсы есть что? Ладно. Поставлю вопрос так - можно ли что-то почитать уровня чайника чтобы по-быстрому разобраться? Куда и в какое место можно дописывать свой код в проект Windows Form? Ну вобщем помогите мне освоить прием-передачу по UDP кто чем может . Пока попробую разобраться в предложенном проекте. Спасибо.
--------------------
Живи днем так, чтобы ночью ты спал спокойно.
|
|
|
|
|
Dec 8 2012, 04:10
|

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

|
Цитата(smk @ Dec 7 2012, 21:27)  Поставил С++. Не открывает. Может как-то по другому сориентируете как и что в пустой проект дописать? Интересно, я чёрным по белому написал, что необходимо установить. Под управляемый код забудте о плюсах. Так как программист , вы ни какой, то на C# быстрее и обучитесь и сделаете что-то.
--------------------
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее? Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!
|
|
|
|
|
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 пакетов , я вам дал.
Зы: Киев большой, найди рядом программиста он на пальцах вам обьяснит. Программирование , пока , не ваше.
--------------------
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее? Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|