Hi!
I removed the old ICS and with the new one its all working now. But I am trying to send some data and something is not working here :( I made a little procedure like:
procedure SendUDP(Socket:TWSocket;Dest:string;Data:Pointer;DataSize:integer);
var
DestAddr : TSockAddr;
begin
FillChar(DestAddr, SizeOf(DestAddr), 0);
DestAddr.sin_family := AF_INET;
DestAddr.sin_addr.S_addr := WSocket_inet_addr(PChar(Dest));
Socket.SendTo(DestAddr, SizeOf(DestAddr), Data, DataSize);
end;
from where I call it, ie:
SendUDP(WSocket1,'192.168.1.1',@mydata,sizeof(mydata));
and No data is sent! :( If I use Socket.SendStr('..') the server receives the data ... seems something wrong when transforming the ip address because when I use Send() method, it worked.
Regards,
Magno
----- Original Message ----- From: "Francois PIETTE" <[EMAIL PROTECTED]>
To: "ICS support mailing" <twsocket@elists.org>
Sent: Saturday, May 07, 2005 4:41 AM
Subject: Re: [twsocket] Sending video data via UDP
> The UdpSend/Lstn demo generates an error here (ListenBackLog Propertydoes> not exist), but I can read all the source.
It is likely you have an old wsocket.pas or wsocket.dcu somewhere. Check you
installation and be sure to delete every old file version. Use the latest
version from my website.
> The question is, I suppose to use TWSocket.Send(buf,size) ok? Will theudp> stack take control over the 20Kb I am trying to send? How do I control > that
You must set TWSocket.BufSize to the largest packet you want to send. By default, it is 1460 bytes which is the largest TCP packet on Ethernet.
Note that WinSock may fragment you packets depending on the hardware layer.
You have no control about it. It may also limit the maximum packet size to
some limit depending on the implementation. Also no control about that.
Other question is, there is the SendTo(Addr,buf,size) method, maybe Ishoulduse that, but is there any easy function to convert the normal dotted IP address (127.0.0.1, ie) to the 'sockaddr_in' type?
Use WSocket_inet_addr function (not a method of the component, a simple function). Something like: var DestAddr : TSockAddr; begin FillChar(DestAddr, SizeOf(DestAddr), 0); DestAddr.sin_family := AF_INET; DestAddr.sin_addr.S_addr := WSocket_inet_addr('192.168.1.1'); WSocket1.SendTo(DestAddr, SizeOf(DestAddr), Data, DataSize); end;
-- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be