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%