The %bind() function 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).
code = %bind(fd, addr.family, address, port)
fd | 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 file: dm,bp,unix.h socket.h. |
address | Legal values are defined in the include file: 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. |
To compile successfully, the statement cfunction socket.builtin must be included in the source code.
Upon successful completion, a value of 0 is returned in code. In case of an error, -1 is returned and the FlashBASIC system(0) function is set to the value of errno.
cfunction socket.builtin include dm,bp,includes sysid.inc include dm,bp,unix.h socket.h * Create a socket fd=%socket(af$inet, sock$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 connection address=0; port=0 fd=%accept(socket, &address, &port) * Read data from the data link %recv(fd, buffer, 1024)