------------------
Peter.
mailto

FUNCTION PassiveSock( szService AS ASCIIZ , szTransport AS ASCIIZ, BYVAL lLen AS LONG) AS LONG LOCAL ptServent AS servent PTR LOCAL minsock_sa AS sockaddr_in LOCAL lSock AS LONG LOCAL lSockType AS LONG minsock_sa.sin_family = %AF_INET minsock_sa.sin_addr.s_addr = %INADDR_ANY 'map service to port ptServent = getservbyname( szService, szTransport ) IF ISTRUE( ptServent ) THEN minsock_sa.sin_port = htons( ntohs( @ptServent.s_port ) ) ELSE minsock_sa.sin_port = htons( BYVAL VAL( szService ) ) IF ISFALSE( minsock_sa.sin_port ) THEN STDOUT "Can't retrieve service: " + szService CALL WSACleanup() FUNCTION = %INVALID_SOCKET EXIT FUNCTION END IF END IF IF UCASE$(szTransport) = "UDP" THEN lSockType = %SOCK_DGRAM ELSE lSockType = %SOCK_STREAM END IF 'socket allocation lSock = socket( %PF_INET, lSockType, 0 ) IF lSock = %INVALID_SOCKET THEN STDOUT "Can't create socket" FUNCTION = %INVALID_SOCKET CALL WSACleanup() EXIT FUNCTION END IF 'bind socket IF bind( lSock, minsock_sa, SIZEOF( minsock_sa) ) = %SOCKET_ERROR THEN STDOUT "Can't bind to port " + szService FUNCTION = %INVALID_SOCKET CALL WSACleanup() EXIT FUNCTION END IF IF ( lSock = %SOCK_STREAM AND listen( lSock, lLen ) = %SOCKET_ERROR ) THEN STDOUT "Can't listen on port: " + szService FUNCTION = %INVALID_SOCKET CALL WSACleanup() EXIT FUNCTION END IF FUNCTION = lSock END FUNCTION
We process personal data about users of our site, through the use of cookies and other technologies, to deliver our services, and to analyze site activity. For additional details, refer to our Privacy Policy.
By clicking "I AGREE" below, you agree to our Privacy Policy and our personal data processing and cookie practices as described therein. You also acknowledge that this forum may be hosted outside your country and you consent to the collection, storage, and processing of your data in the country where this forum is hosted.
Leave a comment: