Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ServerSocket dynamisch erstellen: Windows socket error (https://www.delphipraxis.net/81404-serversocket-dynamisch-erstellen-windows-socket-error.html)

Aljoscha 26. Nov 2006 19:05


ServerSocket dynamisch erstellen: Windows socket error
 
Hi!
Ich habe ein Problem...
Und zwar möche ich einen ServerSocket dynamisch erstellen.
Das klappt auch soweit, allerdings wenn ich ein eigenes OnClientRead Ereignis einfügen will kommt es zu Problemen...
Dazu sei gesagt das er mir in der selbstgeschriebenen Prozedur als Sender immer ein TServerWinSocket gegeben hat obwohl ich eigentlich einen TServerSocket verwende, ich weiß nicht in wie weit das zu Problemen führt. Auf jeden fall habe ich wie unten zu sehen mich für Sender as TServerWinSocket und nicht für Sender as TServerSocket entschieden.
Ich habe folgende Zeile eingefügt um den ankommenden Text auszugeben:

Delphi-Quellcode:
ShowMessage( (Sender as TServerWinSocket).ReceiveText );
Allerdings tut er das nicht...
Er gibt mir folgende Fehlermeldung:

Zitat:

---------------------------
Debugger Exception Notification
---------------------------
Project Server.exe raised exception class ESocketError with message 'Windows socket error: Eine Anforderung zum Senden oder Empfangen von Daten wurde verhindert, da der Socket nicht verbunden ist und (beim Senden über einen Datagrammsocket mit einem sendto-Aufruf) keine Adresse angegeben wurde (10057), on API 'recv''. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Starte ich die Anwendung manuell, also ohne Debugger kommt:

Zitat:

---------------------------
Server
---------------------------
Windows socket error: Eine Anforderung zum Senden oder Empfangen von Daten wurde verhindert, da der Socket nicht verbunden ist und (beim Senden über einen Datagrammsocket mit einem sendto-Aufruf) keine Adresse angegeben wurde (10057), on API 'recv'
---------------------------
OK
---------------------------
Das Projekt mit Client und Server (obwohl man anstatt dem Client auch Telnet probieren kann, es kommt der selbe Fehler) befinden sich im Anhang.
Bin für jede Hilfe/Tip dankbar.

Muetze1 26. Nov 2006 23:57

Re: ServerSocket dynamisch erstellen: Windows socket error
 
Der ServerSocket ist ein Server und kann daher mehrere ClientVerbindungen annehmen und verwalten. Wenn du nun einfach nur ServerSocket.ReceiveText aufrufst - welchen Client sollte er denn nun abfragen? Random?

Du musst angeben, welche Verbindung du auslesen willst. Also ServerSocket.Socket.Connections[].ReceiveText. Connections[] ist ein Array/Liste mit allen Clientverbindungen die zu dem Zeitpunkt am Server verbunden sind. Die Anzahl bekommst du mit der Eigenschaft ActiveConnections. Näheres dazu in der Hilfe.

Aljoscha 27. Nov 2006 12:30

Re: ServerSocket dynamisch erstellen: Windows socket error
 
Ups...
Stimmt ja :oops:
Danke für den Tip!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz