Sockets in new release

BlitzMax Forums/BlitzMax Programming/Sockets in new release

***EDIT***

These programs work now.
to test on a single PC
1. save server.bmx and client.bmx
2. open 2 seperate instances of BMAX
3. run server first, the run client
4. type into client and hit enter...

or... run server on a Linux box and client on a MAC

I'll build on this when i get more time




SERVER
'Server
Graphics 320,240,0
Local My_server:TSocket=CreateTCPSocket()
BindSocket My_server,12345
SocketListen My_server


Repeat 
	Local client:TSocket=SocketAccept( My_server )
	If client
		stream:Tsocketstream = CreateSocketStream(client)
		Print DottedIP(SocketRemoteIP(client))+" is Connected"
		
		Repeat
		
			foo$ = ReadLine$(stream)
			DrawText foo$,0,0
			
			Flip ; Cls
		Until KeyHit(KEY_ESCAPE)
		
	EndIf
	
	
	
	
	
	Flip ; Cls
Until KeyHit(KEY_ESCAPE)




CLIENT
'Const LOCALHOST = 2130706433
Graphics 320,240,0

Global LHOST = Dotted_to_integer("127.0.0.1")


Local client:TSocket=CreateTCPSocket()
ConnectSocket client,LHOST,12345

If client
	stream:Tsocketstream = CreateSocketStream(client)
	' WriteLine(stream,"Hello World")
Else 
	Print "cant connect to server"
EndIf

Local sendstring$ = ">"
Repeat
		
	keytimer:-1
	If keytimer < 0
		stroke = GetChar()
		
		Select stroke 
			Case 0
				' do nothing
			Case KEY_BACKSPACE
				sendstring$ = sendstring$[0..Len(sendstring)-1]
			Case KEY_RETURN 
				WriteLine(stream,sendstring$)
				sendstring$ = ">"
				'sendstring$:+"[R]"
			Default sendstring$:+Chr(stroke)
		End Select
		keytimer = 10
	EndIf
	
	DrawText sendstring$,0,0
	

	


Flip ; Cls

Until KeyHit(KEY_ESCAPE)

Function Dotted_to_integer(Dotted_ip$)
		Dotted_ip$:+"."
		Local octet:String[4]
		For i = 0 To 3
			dot =  Dotted_ip$.find(".") ; octet[i] =  Dotted_ip$[0..dot]
			Dotted_ip$ = Dotted_ip$[dot+1..]
		Next
	Return (octet[0].toint() Shl 24) + (octet[1].toint() Shl 16) + (octet[2].toint() Shl 8) + octet[3].toint()
End Function