%BIND

%BIND


%ALARM Index Level %CHDIR
Syntax code = %BIND( socket, addr.family, address, port )
Category BASIC
Type C Function
Description binds a socket to a named resource. In case of a network, the resource would be an access point into the system (see the example below).

To compile successfully, the statement 'cfunction socket.builtin' must be included in the source code.

'socket'        Is the file descriptor of the local socket returned by a previous call to the FlashBASIC C function '%socket'.

'addr.family'   Specifies the addressing scheme used by the protocol. This field must match the address family used when creating the socket. Valid values are defined in the include: 'dm,bp,unix.h socket.h'.

'address'       Legal values are defined in the include: 'dm,bp,unix.h socket.h'.

'port'          Port number on the local host. The legal value for this field depends on the protocol. On TCP/IP, for example, valid port number are from 1024 to 32767. This field may not be applicable for all protocols.

Upon successful completion, a value of 0 is returned in 'code'. In  case of an error, a value of -1 is returned and the (FlashBASIC) function 'SYSTEM(0)' is set to the value of 'errno'.
Options
See Also %LISTEN %GETHOSTID %SOCKET %ACCEPT %READ (D3/Unix)
Example cfunction socket.builtin
include dm,bp,unix.h socket.h

* Create a socket
fd=%socket( AF$INET, SOCKET$STREAM, 0 )

* Bind the socket to a local Ethernet port.
* Use default address.
if %bind( fd, AF$INET, INADDR$ANY, 1024 )<0 then
 crt 'bind failed'; stop
end

* Wait for incoming connection
%listen( fd, 1 )

* Accept a connectionn
addr=0; port=0
fd=%accept( socket, &addr, &port )

* Read data from the data link
%read( fd, buffer, 1024 )
Warnings Sockets are a BSD extension, which may not be available on all Unix platforms.
Compatibility D3/Unix
%ALARM Index Level %CHDIR