DIM SHARED OUT$, myname$
DIM l AS _UNSIGNED _BYTE
PRINT "[Steve's Mini Messenger]"
client = _OPENCLIENT("TCP/IP:7993:172.93.60.23") ' Attempt to connect to Steve's PC host as a client
PRINT "[connected to " + _CONNECTIONADDRESS(client) + "]"
INPUT "Enter your name: ", myname$
OUT$ = myname$ + " connected!"
l = LEN(OUT$)
PUT #client, , l
PUT #client, , OUT$
'PRINT "OUT$: "; OUT$
DO
GetMessage client
SendMessage mymessage$, client ' display current input on screen
_LIMIT 30
LOOP
'.................... END OF MAIN PROGRAM ................
SUB GetMessage (client) ' get & display any new message
DIM l AS _UNSIGNED _BYTE
GET #client, , l
IF l > 0 THEN
_DELAY .1 'some delay so the other 'puter can send the info to us across spiderman's excretions!
OUT$ = SPACE$(l)
GET #client, , OUT$
VIEW PRINT 1 TO 20
LOCATE 20, 1
PRINT OUT$
VIEW PRINT 1 TO 24
ELSE
OUT$ = ""
END IF
END SUB
SUB SendMessage (mymessage$, client) ' simple input handler
DIM l AS _UNSIGNED _BYTE
k$ = INKEY$
IF LEN(k$) THEN
IF k$ = CHR$(8) AND LEN(mymessage$) <> 0 THEN
mymessage$ = LEFT$(mymessage$, LEN(mymessage$) - 1)
ELSE
IF LEN(k$) = 1 AND ASC(k$) >= 32 THEN mymessage$ = mymessage$ + k$
END IF
END IF
VIEW PRINT 1 TO 24
LOCATE 22, 1: PRINT SPACE$(80); ' erase previous message displayed
LOCATE 23, 1: PRINT SPACE$(80); ' erase previous message displayed
t$ = myname$ + ": " + mymessage$
LOCATE 22, 1: PRINT t$;
IF k$ = CHR$(13) OR LEN(t$) = 255 THEN ' [Enter] sends the message
IF mymessage$ = "" THEN SYSTEM ' [Enter] with no message ends program
mymessage$ = myname$ + ":" + mymessage$
l = LEN(mymessage$)
PUT #client, , l
PUT #client, , mymessage$
_TITLE mymessage$
mymessage$ = ""
END IF
IF k$ = CHR$(27) THEN SYSTEM ' [Esc] key ends program
END SUB