basic.%accept

C Function/BASIC Program, Releases: AP/Unix

Accept a connection on a socket.

Syntax

code =%accept( socket, &address, &port )

Description

extracts the first connection on the queue of pending connections, creates a new socket and allocates a new file descriptor.

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 Pick/BASIC C function '%socket'.

Upon successful completion, a value of 0 is returned in 'code', and the following Pick/BASIC variables are updated:

'address' Originating address of the incoming call.

'port' Originating port number or the incoming call.

In the case of an error, a value of -1 is returned and the (Pick/BASIC) function 'system(0)' is set to the value of 'errno'.

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 connection
addr=0; port=0
fd=%accept( socket, &addr, &port )
crt 'Called by address ':addr:', port #':port
* Read data from the data link
%read( fd, buffer, 1024 )

See Also

Command Name Type Description
basic.%listen C Function Listens for incoming connections and limits the backlog of incoming connections.
basic.%gethostid C Function Gets the unique identifier of the current host.
basic.%socket C Function Creates a socket.
basic.%bind C Function Binds a name to a socket.
basic.%close C Function Closes a Unix file.

User Comments

What do you think?

Share your experience or ask a question by using the form below.

Login to leave your comments.