Entwickler-Ecke
Internet / Netzwerk - Fehler beim senden von daten
seppel86 - Mo 23.02.04 16:30
Titel: Fehler beim senden von daten
Hi, ich hab mal wieder ein Prob.
Ich will vom Server aus eine Nachricht an den Client senden, dass sieht bei mir so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TFormLanServer.Button2Click(Sender: TObject); begin ServerSocket1.Socket.SendText('C' + edit3.text); Memo1.Lines.Add(edit3.text); edit3.Text:=' '; end; |
Ich krieg dann immer folgenden Error: Eine Anforderung zum senden und empfangen wurde verhindert, da der Socket nicht wurden ist.und beim senden keine Addresse angegeben wurde.
Ich hab keine Ahnung was das soll, obwohl die Verbindung zwischen Server und Client besteht.
Seppel86
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt
CABALxx - Mo 23.02.04 16:56
Zitat: |
und beim senden keine Addresse angegeben wurde. |
hmm ich hab delphgi 7 deswegen kenn ich mich mit diesen Sersocket und Clientsocket nicht so aus
aber haste dem ding denn auch einen eindeutigen Port und dem Client zumindest ma ne eindeutige IP zugewiesen??
is nur ne frage / vermutung
Poste am besten mal beide Quelltext und schreib alle einstellungen dabei vielleicht kann mans dann besser nachvollziehen
aber auch keine genaue ahnung :roll:
seppel86 - Mo 23.02.04 18:24
Ich hab beiden den festen Port 9998 zugewiesen, und der Port ist auch 100% sicher frei. Als IP benutz ich die 127.0.0.1, ich probier das also an einem Rechner aus mit der Loopback Addresse. Könnt es daran liegen?
Was ich sonst noch als Code reinposten sollte wüsst ich nicht, der Server soll einfach nur senden, er macht es aber nicht...
mit dem client hat das nix zu tun, weil der ja gar nicht dazu kommt irgendwas zu empfangen.
seppel86 - Mo 23.02.04 18:38
Ich habs mal auf 2 verschiedenen Rechnern mit verschiedenen IP's probiert. Das Problem ist das gleiche.
CABALxx - Mo 23.02.04 18:42
hmmm
das ist in der tat komisch
ich kenn diese TServerSocket Kompónete wie schon erwähnt zwar nicht aber der code scheint doch richtig zu sein und ein derart hoher port ist im normal falle auch frei
da hät ich jetzt auch keine directe idee
ich könnte halt höchstens sagen, dass man ja mal die INDY komponenten benutzen kann
weil da gibt es jede menge tutorials zu
aber ich fürcht das hilft dir ja nicht so wirklich wenn du die Tserversocket benutzen willst
hmm
ma warten ob noch jemand den threat liest der sich mit den komponenten auskennt...
:(
EDIT:
ich hab hier bei den FAQs mal einen threat gefunden der hilft vielleicht indirect
http://www.delphi-forum.de/viewtopic.php?t=22001
der beschäftigt sich damit, fehlermeldungen verständlicher auszugeben
vielleicht hilfts
seppel86 - Mo 23.02.04 20:28
ok. trotzdem danke für die mühe, wenn jemand anders ahnung hat BITTE POSTEN!!!
MAlsleben - Di 24.02.04 08:43
Hi,
soviel ich weiß, must Du vor dem Senden der von Daten den Client mit dem Server connecten. Poste mal den gesamten Code, der im Zusammenhang mit dem Client und Server - Socket steht. Da kann man besser helfen.
Gruß Micha.
seppel86 - Di 24.02.04 16:49
Natürlich ist der Client mit dem Server connected, sonst wär das ja totaler Schwachsinn. Ich hab aber schon ne andere Lösung. Wenn ich versuche mit dem Befehl vom Server aus an die Clients zu schicken ist das so als wollt ich beim telefon durch das hörteil sprechen und nicht durch das sprechteil. mit serversocket1.socket.connections[i] (i ist der jeweilige Client) kann ich sachen verschicken.
Trotzdem danke für die Mühe
Seppel86
sebwa2k - Di 24.02.04 21:35
der befehl um vom server aus zu senden muss heißen:
Quelltext
1:
| Serversocket1.socket.connections[0].sendtext('Text'); |
der server muss ja wissen an wen er senden soll...
wie du allerdings rausfindest welcher client welche nummer hat oder so weis nich nicht, daran bin ich immer gescheitert
sebwa
chritzl - Di 24.02.04 22:19
sebwa2k hat folgendes geschrieben: |
der befehl um vom server aus zu senden muss heißen:
Quelltext 1:
| Serversocket1.socket.connections[0].sendtext('Text'); |
der server muss ja wissen an wen er senden soll...
wie du allerdings rausfindest welcher client welche nummer hat oder so weis nich nicht, daran bin ich immer gescheitert
sebwa |
das wäre dann dass hier:
Delphi-Quelltext
1:
| Serversocket1.Socket.Connections[Serversocket1.Socket.ActiveConnections-1].SendText('string'); |
[Edit]
ups, da war ich wohl zu schnell und hab nicht richtig gelesen... sorry! Vielleicht aber doch interresant? :roll:
[/edit]
seppel86 - Mi 25.02.04 16:17
Da ich ein 2 Player Spiel programmiere und einer der Server ist, gibt es nur ein Client. Und der hat dann logischer Weise die Nummer 0 zugeordnet. Wenn man an mehrere schicken will kann man das ja mit ner for schleife machen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!