BCX Console Demonstration Program s92.bas

'------------------------------------------------------- 
'           Display Winsock Version Information 
'------------------------------------------------------- 
$HEADER
#if defined(__LCC__)
 #include <WINSOCK2.H>
 #endif
$HEADER

$LIBRARY <WSOCK32.LIB>          ' LINK WITH WSOCK32.LIB 

GLOBAL  wVersionRequested
GLOBAL  wsaData AS WSADATA
GLOBAL  rc

wVersionRequested = MAKEWORD(1,1)

rc = WSAStartup(wVersionRequested, &wsaData)

IF NOT rc THEN
  PrintWSAData(&wsaData)
ELSE
  PRINT "Winsock error"
END IF

WSACleanup()

SUB PrintWSAData (pWSAData AS LPWSADATA)

  DIM  Lo
  DIM  Hi
  DIM  I
  DIM  A$

  '------------------------------------- 
  PRINT "Winsock Version Information"
  '------------------------------------- 
  Lo = LOBYTE(pWSAData->wVersion)
  Hi = HIBYTE(pWSAData->wVersion)
  A$ = LTRIM$(STR$(Lo)) & "." & LTRIM$(STR$(Hi))
  PRINT "Version: ", A$
  '------------------------------------- 
  Lo = LOBYTE(pWSAData->wHighVersion)
  Hi = HIBYTE(pWSAData->wHighVersion)
  A$ = LTRIM$(STR$(Lo)) & "." & LTRIM$(STR$(Hi))
  PRINT "HighVersion: ", A$
  '------------------------------------- 
  A$ = pWSAData->szDescription$
  PRINT "Description: ", A$
  '------------------------------------- 
  A$ = pWSAData->szSystemStatus$
  PRINT "System status: ", A$
  '------------------------------------- 
  I = pWSAData->iMaxSockets
  PRINT "Max number of sockets: ", I
  '------------------------------------- 
  I = pWSAData->iMaxUdpDg
  PRINT "MAX UDP datagram size: ", I
  '------------------------------------- 
END SUB

Result:

Winsock Version Information
Version: 1.1
HighVersion: 2.2
Description: WinSock 2.0
System status: Running
Max number of sockets:  32767
MAX UDP datagram size:  65467