# %sendto() function

The %sendto() sends data to a specified
destination. If no errors occur, the total number of bytes sent is
returned.

## Syntax

```
code = %sendto(socket, buffer, buflen, flags, HostName, port)
```

## Parameter(s)

| socket | File descriptor for the local socket. |
| --- | --- |
| buffer | Data to send. |
| buflen | Length of the data in bytes. |
| flags | Should be zero. |
| HostName | Destination target server name. |
| port | Port number for the target server. |

## Example(s)

```
*
* Open a connection through UDP/IP.
*
cfunction socket.builtin
include dm,bp,includes sysid.inc
include dm,bp,unix.h socket.h
equ ip_port to 3176
*
* Get the host name.
tclread line
host = field(trim(line),&#39; &#39;,2)
*
* Create a socket
fd=%socket( AF$INET, SOCK$DGRAM, 0)
if fd<0 then print "Open error: ":system(0); stop
*
port=%bind( fd, AF$INET, INADDR$ANY, ip_port )
*
leng = 4; err = " "
x = %getsockopt(fd,SOL$SOCKET,SO$ERROR,&err,&leng)
*
prompt ""
print "command: ":; input cmd
ln = len(cmd)
MaxPack = int(ln/242)+1
for x = 1 to MaxPack
 Buffer = "ExEC":x &#39;r%4&#39;:MaxPack &#39;r%4&#39;:cmd[((x-1)*242)+1,242]:space(242)
 n = %sendto(fd, Buffer, 256, 0, &host, ip_port)
 if n < 0 then
 print "Write error: ":system(0)
 end
next x
*
* Loop reading the Result packets
bigbuff = ""; packcnt = 0
loop
 addr=0; port=0
 buffer = space(256)
 length=%recvfrom( fd, buffer, 256, 0, &addr, &port)
 if length<0 then print "Read Error: ":system(0)
 PackSeq = buffer[5,4]
 MaxPack = buffer[9,4]
 packcnt += 1
 bigbuff[1+((PackSeq-1)*242),242] = buffer[13,242]
until packcnt = MaxPack do repeat
*
* print the buffer
cnt = dcount(bigbuff,char(254))
for x = 1 to cnt
 print bigbuff<x>
next x
*
* Close the socket
%close( fd )
end
```

---
Source: https://d3codex.com/pickbasic-flashbasic/percent-sendto-function/ - part of the D3Codex reference.
