Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

UDP Problem

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Nitroxis



Anmeldungsdatum: 27.02.2008
Beiträge: 300
Wohnort: Irgendwo...

BeitragVerfasst am: 13.01.2010, 20:12    Titel: UDP Problem Antworten mit Zitat

Hallo
Ich habe ein Problem bei Datenübertragung mit UDP.
Der Server kann nur empfang und der Client nur senden.
Wenn ich mit dem Server versuche etwas zu senden kommt es bei dem Client nicht an.
Ich benutze chiSock.
Kann mir da jemand helfen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Stueber



Anmeldungsdatum: 07.07.2008
Beiträge: 202

BeitragVerfasst am: 13.01.2010, 20:20    Titel: Antworten mit Zitat

Ohne Quelltext und ohne Informationen wie Portnummer wird dir keiner helfen können.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 13.01.2010, 20:59    Titel: Antworten mit Zitat

Doch, ich, ich gebe gerne Lösungen mit der gleichen Präzision, mit der auch das Problem geschildert wurde:

Du hast was falsch gemacht! Um das zu lösen, musst du es richtig machen!

Zunge rausstrecken
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 13.01.2010, 21:43    Titel: Antworten mit Zitat

der client sitzt nicht zufällig hinter einem NAT router und der server versucht zum zurücksenden zunächst ne neue verbindung mit dem client aufzunehmen?
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Nitroxis



Anmeldungsdatum: 27.02.2008
Beiträge: 300
Wohnort: Irgendwo...

BeitragVerfasst am: 13.01.2010, 23:12    Titel: Antworten mit Zitat

Der Server und der Client laufen beide auf meinem Rechner und werden nicht durch irgendwelche Firewalls geschützt. Mit TCP läuft es aber UDP geht nur in eine richtung.

Client:
Code:
#Include "chisock/chisock.bi"
Using chi
Dim UdpClient As Socket
Dim DataInput As String
Dim DataOutput As String
UdpClient.UDP_Client("localhost", 1337)
Do
   DataOutput = InKey()
   If DataOutput <> "" Then
      UdpClient.Put(DataOutput)
   EndIf
   If UdpClient.Get(DataInput) Then
      Print DataInput
   EndIf
Loop Until MultiKey(1)
UdpClient.Close()

Server:
Code:
#Include "chisock/chisock.bi"
Using chi
Dim UdpServer As Socket
Dim DataInput As String
Dim DataOutput As String
UdpServer.UDP_Server(1337)
Do
   DataOutput = InKey()
   If DataOutput <> "" Then
      UdpServer.Put(DataOutput)
   EndIf
   If UdpServer.Get(DataInput) Then
      Print DataInput
   EndIf
Loop Until MultiKey(1)
UdpServer.Close()
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 13.01.2010, 23:37    Titel: Antworten mit Zitat

Das liegt einfach an der natur des UDP's. Wie in TSNE zu sehen, wird ein UDP Socket per "Bind" angebunden.

Dabei ist es nicht möglich einen Port 2x auf der selben "kiste" an ein socket zu binden. Zumindest nicht so, wei du das gerne haben willst. Es gäbe da den "REUSER" Option per Socketoption zu setzen, der es ermöglicht 2 x den selben Port zu binden. Das Problem an der sache ist jedoch, das der 2te Bind automatisch der empfänger wird, udn der erste "übergangen" wird, solange die nachfolgenden Bind's existieren.

Bei TCP wird das anders gemacht. Hier wird ein alternativ-Port verwendet, der in das Packet eingebunden wird. Dadurch ist es möglich (siehe Wireshark bzw. Etherreal oder Ethercap), einen Verbindugn auch lokal zu verwenden. bzw. mehrere Verbindungen auf einem Port zu nutzen.

Erstellst du beispielsweise einen TCP Server, udn verbindest sich 2x (simultan) mit diesem server, lokal, dann wird ein anderer Port als der im server angegebene verwendet um die verbindung herzustellen. Dies ist auch der Grund,w arum die anzhal verbindungen (gleichzeitig) auf 6555 beschränkt ist. Einfach deshalb, weil es nur so viele Port's gibt.

Willst du also lokal eine server/client verbindung, bzw. eine "kommunikation" per UDP realisieren, musst du das TCP -Managment von hand schreiben udn die Portkomunikation und verwaltung ebenfalls.

oder aber, du nutzt 2 port's


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Nitroxis



Anmeldungsdatum: 27.02.2008
Beiträge: 300
Wohnort: Irgendwo...

BeitragVerfasst am: 15.01.2010, 15:58    Titel: Antworten mit Zitat

Das heißt also, wenn ich zwei verschiede Rechner nehme läufts?!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 15.01.2010, 17:38    Titel: Antworten mit Zitat

das weis ich nicht. Das Kommt drauf an, ob chisocks beim erzeugen eines "clienten" sowohl einen socket zum senden UND empfangen erzeugt, oder nur einen für eine richtung.

Da ich chisocks nicht kenne, kann ich dir das nicht sagen, bis auf: Testen.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz