Jump to content

    

Прием пакетов по UDP (Visual Studio)

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

 

My_UDP.rar

Share this post


Link to post
Share on other sites

Во первых UDP использует простую модель передачи, без неявных "рукопожатий" для обеспечения надежности, упорядочивания или целостности данных. Таким образом, UDP предоставляет ненадежный сервис, и датаграммы могут прийти не по порядку, дублироваться или вовсе исчезнуть без следа.

Во вторых, проект с передатчиком и приёмником UDP прилагаю.

В третьих , когда ж прекратите с этим пропертарным раром баловаться.

UDP_Solution.zip

Share this post


Link to post
Share on other sites
Во первых UDP использует простую модель передачи, без неявных "рукопожатий" для обеспечения надежности, упорядочивания или целостности данных. Таким образом, UDP предоставляет ненадежный сервис, и датаграммы могут прийти не по порядку, дублироваться или вовсе исчезнуть без следа.

Во вторых, проект с передатчиком и приёмником UDP прилагаю.

В третьих , когда ж прекратите с этим пропертарным раром баловаться.

VS2008 говорит что приложение создано более новой версией и открывать отказывается. Можно что-то предпринять? Спасибо.

Share this post


Link to post
Share on other sites
VS2008 говорит что приложение создано более новой версией и открывать отказывается. Можно что-то предпринять? Спасибо.

наверное установить VS2010 или воспользоваться конвертером VS2010 -> VS2008

Share this post


Link to post
Share on other sites
VS2008 говорит что приложение создано более новой версией и открывать отказывается. Можно что-то предпринять? Спасибо.

Откуда у вас 2008, уму не растяжимо ?

http://www.microsoft.com/visualstudio/rus/...io-2010-express скачайте и установите бесплатную версию Visual C# 2010 Express .

 

Share this post


Link to post
Share on other sites
Откуда у вас 2008, уму не растяжимо ?

http://www.microsoft.com/visualstudio/rus/...io-2010-express скачайте и установите бесплатную версию Visual C# 2010 Express .

Качаю 2012 Express. C# ? Нет, под ХР таки 2010.

Share this post


Link to post
Share on other sites

Поставил С++. Не открывает. Может как-то по другому сориентируете как и что в пустой проект дописать?

Share this post


Link to post
Share on other sites
Поставил С++. Не открывает. Может как-то по другому сориентируете как и что в пустой проект дописать?

у меня все открывает без проблем в 10-ой студии, винда 7-ка.

 

Поставил С++. Не открывает. Может как-то по другому сориентируете как и что в пустой проект дописать?

Проект на С#, а не на плюсах

 

качать отсюда http://www.microsoft.com/visualstudio/rus/...#d-2010-express

Share this post


Link to post
Share on other sites
у меня все открывает без проблем в 10-ой студии, винда 7-ка.

 

 

Проект на С#, а не на плюсах

 

качать отсюда http://www.microsoft.com/visualstudio/rus/...#d-2010-express

А под плюсы есть что?

 

 

Ладно. Поставлю вопрос так - можно ли что-то почитать уровня чайника чтобы по-быстрому разобраться? Куда и в какое место можно дописывать свой код в проект Windows Form? Ну вобщем помогите мне освоить прием-передачу по UDP кто чем может . Пока попробую разобраться в предложенном проекте. Спасибо.

Share this post


Link to post
Share on other sites
А под плюсы есть что?

увы :(, но в сети этого добра точно должно быть навалом

 

Share this post


Link to post
Share on other sites
Поставил С++. Не открывает. Может как-то по другому сориентируете как и что в пустой проект дописать?

Интересно, я чёрным по белому написал, что необходимо установить. Под управляемый код забудте о плюсах. Так как программист , вы ни какой, то на C# быстрее и обучитесь и сделаете что-то.

 

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Подскажите по простому, в чем разница между сервером и клиентом UDP, в т.ч. с позиции программирования?

Всё смешалось в кучу , кони, люди.

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

 

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

 

 

 

 

Share this post


Link to post
Share on other sites
Всё смешалось в кучу , кони, люди.

Сервер : аппаратно - программный комплекс обеспечивающий обслуживание запросов клиентов, иными словами - сервер не иницирует запросов. Примером может служить службы серверов 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;
}

 

 

Share this post


Link to post
Share on other sites

Хм.

Наверно так ,

1. Установите VS2010 C# , возьмите книжку Рихтера, почитайте об CLR и С# в частности

2. Возмите любую книгу по программрованию Windows GUI, почитайте о событийной модели.

3. Пример рабочий передатчика и приёмника UDP пакетов , я вам дал.

 

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

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this