![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Извините что вопрос немного не в тему 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]меня сей вопрос тож интересует ...
помогайте кто знает чё там и куда :)