UDP Multiplayer
Blitz3D Forums/Blitz3D Programming/UDP Multiplayer
| ||
Hello What is wrong with this code? Global NumberofPlayers = 1;Input("How many players are there?") Dim IPAdress(NumberofPlayers) IPAdress(1) = 1921680101 Variable$ = "Hello World!" Stream = CreateUDPStream(828) NewStream = CreateUDPStream(0) WriteString(Stream,Variable) Broadcast(Stream,828) RecvUDPMsg(NewStream) String1$ = ReadString(NewStream) Print String1 WaitKey End Function Broadcast(Message,Port);Message is the stream that is being broadcasted. Port is the Destination Port. Write"Testing..." For Loop = 1 To NumberofPlayers SendUDPMsg Message,IPAdress(Loop),Port Next Print"done." End Function When I run this, the ReadString Function doesn't return anything. Please point out any mistakes with it. |
| ||
That's not the way you do integer IP address. You have to convert from dotted to integer. |
| ||
hmmm... testing, even with a proper IP it doesn't work. Too bad the UDP commands are so poorly documented. |
| ||
http://www.blitzbasic.com/codearcs/codearcs.php?code=1230 |
| ||
Can you please post an example of the format for an integer IP adress |
| ||
take the number between each dot, convert to hex, put together 192.168.01.01 = c0 . a8 . 01. 01 = $c0a80101 |
| ||
see this example of setting up udp http://www.blitzbasic.com/codearcs/codearcs.php?code=1593 |
| ||
in general.. dont mix upp server and client in same code.. you comfuse yourself :D |
| ||
I have gotten it working. Thanks for your help. The mistake other than the IP adress was the port I was sending it to. I was sending it to the port number of the sending stream instead of the port of the redeiving stream. Here is the working code:Global NumberofPlayers = Input("How many players are there?") Dim IPAdress(NumberofPlayers) IPAdress%(1) = $c0a80065 Variable$ = "Hello World!" Stream% = CreateUDPStream(828) NewStream% = CreateUDPStream(79) WriteString(Stream,Variable) Broadcast(Stream,79) .reread;This is so it will re-receive the Data If the First RecvUDPMsg failed RecvUDPMsg(NewStream) String1$ = ReadString$(NewStream) If String1 = 0 Goto reread Print String1 string1 = 0 WaitKey End Function Broadcast(Message,Port);Message is the stream that is being broadcasted. Port is the Destination Port. For Loop = 1 To NumberofPlayers SendUDPMsg Message,IPAdress(Loop),Port Next End Function |