Chat mit UDP
Übersicht

progger3DBetreff: Chat mit UDP |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo ich komme mit meinem kleinen Chat nicht klar,
ich glaube es liegt daran dass ich den Text nur einmal schicke und einmal empfange und das das genau in der selben Zeit passieren muss. WER kann mir helfen ![]() Mein Sende und Empfangsstream/ also der host |ich| Code: [AUSKLAPPEN] empfang_stream=CreateUDPStream(8000)
sende_stream=CreateUDPStream(8001) ;IP_Eingabe$=Input("IP? ") Eingabe$=Input("You message: ") IP_Eingabe$="127.0.0.1" Line=ReadLine(empfang_stream) WriteLine(sende_stream,Eingabe$) SendUDPMsg sende_stream,IP_Eingabe$,8001 WaitKey Antwort>Code: [AUSKLAPPEN] empfang_stream=CreateUDPStream(8001)
sende_stream=CreateUDPStream(8000) ;IP_Adresse=RecvUDPMsg(empgang_stream) ;IP_String$=DottedIP (IP_Adresse) Eingabe$=Input("You message: ") Line=ReadLine(empfang_stream) WriteLine(sende_stream,Eingabe$) SendUDPMsg sende_stream,"127.0.0.1",8001 WaitKey |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
uff also:
1. richtig das muss alles schnell gleichzeitig passieren weil der partner nicht wartet außerdem wurde kein RecvNetMsg ausgeführt. Erst nachdem dieser befehl ausgeführt wurde steht auch alles empfangene im stream. 2. IP_Eingabe ist ein String wie "127.0.0.1" die IP muss aber direkt als integer angegeben werden also zB 127*256*256*256+0*256*256+0*256+1 Forensuche : "INT_IP" wird dir da helfen 3. Beide Programme verwenden beide Ports 8001 und 8000. Das was ich an Robs bb-kurs am doofsten finde: die trennung zwischen sende und empfangsstream bei udp wird leider sehr oft angewandt und dabei werden viele Fehler gemacht: An jedem PC kann immer nur Ein UDP stream einen Port beobachten da jeder UDP stream senden und empfangen kann. du versuchst beide programme also je 2 Streams auf den port 8000 und 8001 zugreifen zu lassen. Das geht in die Hose. Mein vorschlag: Ein stream pro programm: 8001 für das eine 8000 für das andere. je nach dem an welches programm du schickst, musst du an den jeweils anderen port schicken 4. line wird zwar ausgelesen aber nicht angezeigt.. also sieht man erst recht nix. Probier mal mit den ganzen tipps nen neuen code zu schreiben und stell ihn wieder hier rein, dann können wir weiter arbeiten. |
||
progger3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank, das bringt mich enorm weiter, gleich stell ich den neuen Code rein...
EDIT: ZU 1.: RecvNetMsg steht im Zusammenhang mit DirectPlay sicher, dass ich das brauche! ZU 2.: Das Forum habe ich nicht gefunden, ich habe aber trotzdem den Integer Wert eingearbeitet. ZU 3.: Das habe ich geändert. ZU 4.: Das hat soweit gekplappt, es wurde nur immer "0" ausgeprintet, da keine Nachricht gesendet wurde (Fehler?) Host Code: [AUSKLAPPEN] stream=CreateUDPStream(8000)
;IP_Eingabe$=Input("IP? ") ;RecvNetMsg Eingabe$=Input("Your message: ") IP_Eingabe$=127*256*256*256+0*256*256+0*256+1 Line=ReadLine(stream) Print Line WriteLine(stream,Eingabe$) SendUDPMsg stream,IP_Eingabe$,8001 WaitKey Code: [AUSKLAPPEN] stream=CreateUDPStream(8001)
;IP_Adresse=RecvUDPMsg(empgang_stream) ;IP_String$=DottedIP (IP_Adresse) Eingabe$=Input("Your message: ") Line=ReadLine(stream) Print Line WriteLine(stream,Eingabe$) SendUDPMsg stream,127*256*256*256+0*256*256+0*256+1,8000 WaitKey |
||
- Zuletzt bearbeitet von progger3D am So, Feb 28, 2010 13:43, insgesamt einmal bearbeitet
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und noch ein Tipp : UDP eignet sich eigl. gar nicht für einen chat..Da es sein kann das die Daten nicht ganz oder garnicht ankommen... Nimm lieber TCP....
mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
progger3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
OK Danke ich will es aber aus einem bestimmten Grund mit UDP versuchen! Eine Wette mit meinem Lehrer! | ||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
hups RecvUDPMsg | ||
Nikla3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
guck dir mal forever und repeat an | ||
progger3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dann hab ich mal das nun daraus gemacht!!!
HostCode: [AUSKLAPPEN] stream=CreateUDPStream(8000)
Eingabe$=Input("Your message: ") IP_Eingabe$=127*256*256*256+0*256*256+0*256+1 Line=ReadLine(stream) Print Line WriteLine(stream,Eingabe$) SendUDPMsg stream,IP_Eingabe$,8001 WaitKey Code: [AUSKLAPPEN] stream=CreateUDPStream(8001)
IP_Adresse=RecvUDPMsg(stream) IP_String$=DottedIP (IP_Adresse) Eingabe$=Input("Your message: ") Repeat Line=ReadLine(stream) Print Line WriteLine(stream,Eingabe$) SendUDPMsg stream,IP_Adresse,8000 Forever WaitKey EDIT ![]() |
||
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
ich hab mal sowas ähnliches Programmiert, fürs Internet und auch lokal. Wenn es dich Interessiert, kann ich dir den Code zeigen und es dir erklären. Schick mir dann einfach ne PN. mfg, count-doku |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
RecvUDPMsg gehört in die Schleife.
Mal ganz allgemein ein Tipp: Wir haben hier im Forum eine deutsche BB-Hilfe. In der gibt es Anwendungsbeispiele und in diesem speziellen Fall sogar einen Chat inklusive der erwähnten "int_IP" Funktion. Also alles an einem Fleck und bereit für dich ![]() ![]() |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
außerdem musst du line als string deklarieren | ||
progger3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, ich habe es soweit geschafft,
werd damit ein wenig romprobieren bis ich die nächste Frage habe ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group