Specifications

Chapter 18. TCP/IP
449
TCP.STTS% = 3
Convert IP address <----- Equivalent to BSD4.4 socket API inet_addr() function
IPADDRESS$ = "192.100.100.001" Specify server IP address
CALL "SOCKET.FN3" .fcINetAdr IPADDRESS$, ADDRESS
Connect socket to server <----- Equivalent to BSD4.4 socket API connect() function
PORT% = 1201 Specify server port
CALL "SOCKET.FN3" .fcConnect SOCKFD%, FAMILY%, PORT%, ADDRESS
Transmit data <----- Equivalent to BSD4.4 socket API send() function
SENDLEN% = 255
SENDMODE% = 0
CALL "SOCKET.FN3" .fcSend SOCKFD%, SENDBUFF$, SENDLEN%, SENDMODE%,
SENDSIZE%
Initialize socket identifier set
<----- Equivalent to BSD4.4 socket API FD_ZERO macro
CALL "SOCKET.FN3" .fcFDZERO R.SOCKSET$ Initialize read socket identifier set
CALL "SOCKET.FN3" .fcFDZERO W.SOCKSET$ Initialize write socket identifier
set
CALL "SOCKET.FN3" .fcFDZERO E.SOCKSET$ Initialize exception socket
identifier set
Add socket identifier to read socket identifier set
<----- Equivalent to BSD4.4 socket API FD_SET macro
CALL "SOCKET.FN3" .fcFDSET SOCKFD%, R.SOCKSET$
Wait for changes in socket identifier set (read condition)
< ----- Equivalent to BSD4.4 socket API select () function
MAXFD% = SOCKFD% +1 Specify number of socket identifiers
TIMEOUT = 360 Specify 6-minute (360-second) timeout
CALL "SOCKET.FN3" .fcSelect MAXFD%, R.SOCKSET$, W.SOCKSET$, E.SOCKSET$,
TIMEOUT, RESULT%
IF RESULT% = 0 THEN Timeout occurred
Processing for timeout
END IF
Get socket identifier status from read socket identifier set
< ----- Equivalent to BSD4.4 socket API FD_ISSET macro
CALL "SOCKET.FN3" .fcFDISSET SOCKFD%, R.SOCKSET$, FDISSET%
IF FDISSET% = 0 THEN No receive data
Processing for no receive data
END IF
Receive data < ----- Equivalent to BSD4.4 socket API recv () function
RECVLEN% = 255
RECVMODE% = 0
CALL "SOCKET.FN3" .fcRecv SOCKFD%, RECVBUFF$, RECVLEN%, RECVMODE%, RECVSIZE%
Close socket < ----- Equivalent to BSD4.4 socket API close () function
CALL "SOCKET.FN3" .fcClose SOCKFD%