Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Извините что вопрос немного не в тему UDP [D3, D5, Win95/98, WinME]


Romych ©   (2002-10-24 12:26:00) 

Скиньте пожалуйста примерчик как послать получить широковещательное сообщение по сети с помощю Udp, InDy, ICS а то в форуме по сетях НИКТО не скажет как это далать, а просто критикуют может кто знает ссылку в Интернете на статью. А то я нашел ссылку где посылаю сообщение с помощью АПИ а ловлю UDP но в этом случае очень большие потери.


Malder   (2002-10-27 13:11:00) [1]

http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1035216263&n=4


Wonder   (2002-10-25 21:39:00) [2]

Return Value
If no error occurs, sendto() returns the total number of characters sent. (Note that this may be less than the number indicated by len.) Otherwise, a value of SOCKET_ERROR is returned, and a specific error code may be retrieved by calling WSAGetLastError().

Неужели так трудно посмотреть документацию?


romych   (2002-10-25 21:27:00) [3]

Как его анализировать?


Digitman   (2002-10-25 13:32:00) [4]

где анализ результата, возвращаемого ф-цией SendTo() ?


romych   (2002-10-25 13:06:00) [5]

Кодом со мной поделились :)

unit Unit1;

interface

uses
Windows, SysUtils, Forms,
Classes, Controls, Buttons, NMUDP, ExtCtrls, Grids, Dialogs,
StdCtrls, strgrdex, ScktComp, Menus;

procedure TForm1.FormCreate(Sender: TObject);
begin
NMUDP1.LocalPort := 6767;
end;

procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
Var
sb : String;
j, i : Integer;
begin
NMUDP1.ReadBuffer(stArr, i);
SB:=StringOfChar(" ", NumberBytes);
For j:=1 to NumberBytes do sb[j]:=stArr[j];
Memo1.Lines.Add(sb);
Buffer:=Buffer+SB;
end;


procedure TForm1.VykonatyKomandu(s : str4);
var
Init :TWSAData;
SockOpt :BOOL;
Sock :TSocket;
Target :TSockAddrIn;
//
stData, LineMemo, Komu : String;
DataBytes : Word;
i , j, LenStr, KodKom : Word;
KodS : Byte;
begin
WSAStartup( $101,Init );
Sock := Socket( PF_INET, SOCK_DGRAM, IPPROTO_UDP );
SockOpt := TRUE;
SetSockOpt( Sock, SOL_SOCKET, SO_BROADCAST, PChar(@SockOpt), SizeOf(SockOpt) );
//
Target.sin_port := htons( 6767 );//номер порта
Target.sin_addr.S_addr := INADDR_BROADCAST;
Target.sa_family := AF_INET;
//
stData:="<"+MyNic+";"+MyIp+";"+Komu+";"+s+";"+IntToStr(KodKom)+";>";
//
DataBytes := Length( stData );
//
for i:= 1 to DataBytes do
begin
stArr[ i ] := stData[ i ];
end;
SendTo( Sock, stArr, DataBytes, 0, Target, SizeOf(Target) );
//
WSACleanup;
end;



end.


Digitman   (2002-10-25 11:29:00) [6]


> что я делаю не правильно


А что ты вообще делаешь ? Код-то приведи


romych   (2002-10-25 00:59:00) [7]

Не заю, но в конференции по сетях сказали чо таких потерь быть не должно, и что я делаю не правильно, а как правильно никто не сказал :)


Digitman   (2002-10-24 13:04:00) [8]

>>с помощью АПИ ...очень большие потери

А ты считаешь, компонеты все эти минуя WinsockAPI выполняют бродкаст ?


Romych   (2002-10-24 12:57:00) [9]

Неужели никто не посылал в сеть широковещательные сообщения, помогите сделать человеку программу для посылки сообщений по сети.


:)   (2002-10-24 12:29:00) [10]

меня сей вопрос тож интересует ...
помогайте кто знает чё там и куда :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо