But its getting screwed sometimes because of there is no data actually being received, and program just hangs waiting for it.
I tried using threads but it worked kind off weird
It looks awkward but it generally works.
Is there a way to make it without multi threading, speciafying some timeout value??
Code: Select all
dim shared s as SOCKET
dim shared recvbuffer as zstring * RECVBUFFLEN+1
dim shared bytes as integer
Dim Shared terminate As Integer =0
Dim Shared rec As Integer =0
Sub sendrecieve
dim sendbuffer as string
sendBuffer = chr(&HFF, &HFF ,&HFF ,&HFF ,&H67 ,&H65 ,&H74 ,&H73 ,&H74 ,&H61 ,&H74 ,&H75 ,&H73 ,&H0A )
print "send:"; sendbuffer
sleep
if( send( s, strptr( sendBuffer ), len( sendBuffer ), 1000 ) = SOCKET_ERROR ) then
print "Error:"; WSAGetLastError; " Calling: send()"
closesocket( s )
sleep
end 1
end if
bytes = recv( s, strptr( recvbuffer ), RECVBUFFLEN, 0 )
recvbuffer[bytes] = 0
print "REC!"
sleep
rec=1
End Sub
...........
...........
...........
rec=0
for i=1 to 5
Print "Request: "; i
thread=threadcreate(@sendrecieve)
sleep 1000
if rec=1 then exit for
next
if rec=0 then print "Error:No data recieved"