basic.%accept
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
User Comments
What do you think?
Share your experience or ask a question by using the form below.
Login to leave your comments.
