PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Client - Server


D4N73
10.06.2002, 12:47
Hallihallo

also... ich hab da gerade so ein projekt ... ;)

und zwar ist das fürs netzwerk... da möchte ich von einem edit ins edit des anderen den inhalt schicken... das muss ich ja mit "sendtext" machen stimmts ? ...

weiss jemand wo ich vielleicht so einen source herkriege...

brauche nur server und client .. server schickt den inhalt eines edits an einen edit des clients

blöde frage was ;)

thx...

D4N73

visit : http://elite.to/elitecorps


Patrik Graf
10.06.2002, 13:21
Alles von Hand (WinAPI) oder mit Komponenten?

Und wenn mit Komponenten, dann mit welchen?

Felix Kaiser
10.06.2002, 15:19
Natürlich TClientSocket und TServerSocket. Zuerst einen Port suchen der frei ist, die Serverkomponente auf diesen setzen und Active auf True setzen. Das Ereignis OnClientRead wird immer ausgelöst, wenn der Server Daten von einer Clientverbindung bekommt. Mit der Funktion ReceiveText des übergebenen TCustomWinSocket Objektes kannst du die gesendeten Textdaten auslesen und z.B. in ein Memo oder Edit geben.

Der Client machts dann so: Du setzt den Port auf den Port vom Server und weist den Host zu, auf dem der Server auf 'listen' ist. Danach rufst du die Methode Open auf. Nun bekommst du entweder einen Event OnConnect, wenn die Verbindung hergestellt wurde oder OnError wenn ein Socketfehler auftrat. Wenn eine Verbindung hergestellt wurde kannst du mit SendText des übergebenen TCustomWinSocket Objektes Daten zum Server schicken. Achte auch darauf dass die Verbindung wenn du fertig bist wieder geschlossen wird, z.B. lass die Verbindung vom Server schließen, sobald er die Daten mit ReceiveText ausgelesen hat.

Ist recht einfach und glaube bei Delphi war auch ein Beispiel dazu bei 'Chat', habs mir aber nicht näher angesehen ...

D4N73
10.06.2002, 17:43
Jo das ist schon mal nicht schlecht ;)

das mit dem "chat" beispiel könnte stimmen...

probiere es mal heut aus... thx

...kann ich eigentlich den standard netwerk port benutzen... aber das man ihn trotzdem weiter zum datenaustausch benutzen kann ?

D4N73

visit: http://elite.to/elitecorps

D4N73
10.06.2002, 17:47
@ patrick graf

also ist eigentlich egal.. wollte komponenten benutzen... soll aber nur funktionieren ... egal wie ;)

D4N73

visit: http://elite.to/elitecorps

Messiah_of_Death
10.06.2002, 20:18
...hey da hab ich jezt auch mal ne Frage.. zu diesen überdoofen Socket Komponenten von Delphi (wieso gibT's keine Winsock.pas ??!. naja egal ) egal was ich mit denen mach ich bekomme _immer_ einen Asynchronus Socket Error ?! ..
da isses wurscht ob Client und Server auf einem oder auf 2 PC's verteilt laufen (..sorry code hab ich keinen momentan..zur Hand)

Patrik Graf
10.06.2002, 21:35
@Messiah_of_Death:

Es gibt eine Winsock.pas :D Wenn du sie nicht hast, schick ich sie dir wenn du willst oder häng sie als Anhang hier hin. Aber im Normalfall ist sie bei Delphi dabei...

Felix Kaiser
11.06.2002, 00:38
Rtl Sourcen sind nur in Professional und Enterprise Versionen enthalten, Socketkomponenten gibts in den Standard bzw. Personalversionen garnich.

xOOn
11.06.2002, 08:25
nimm die delphi komponenten:
TClientSocket und TServerSocket

nimm nen port > 1024 und gibt den host ein, das wars :cool: :cool: :cool:

Messiah_of_Death
11.06.2002, 10:29
oh :eek: winsock.pas gibt's ?!

..hab's grad ausprobiert... hmm und Guru's Kommentar stimmt dann wohl auch.. bei der Professional von D5 isse dabei .. und bei der Personal von D6 net

~_~ ..wuah ich weis man sollte halt alle Versionen austesten.... :rolleyes:

ne also Client/Serversocket Komponente... die mag ich (und die mich) nicht..

das is egal was für ein Port da steht ..immer bei connect gibt's nen Crash...

naja ich versuch's mal über die Winsock direct.. (sollte ja jetzt gehen :D) ..sieht ja net so schwer aus ...

Danke

xOOn
11.06.2002, 11:30
@Messiah_of_Death

naja ich nehme immer die komponeten weil ich einfach zu faul bin mich mit den anderen teilen lang rumzuaergern

PROGRAMMIERER SIND SCHREIBFAUL

ps
das wird jetzt wellen der entruestung hervorrufen :p:D :D :p

Messiah_of_Death
11.06.2002, 11:50
hmm wenn Programmierer Schreibfaul sind bin ich wohl keiner :eek: .....hab mal voll im Rausch ....so ca. 8h am Stück ..Programmcode getippt...

..ich mein eher Programmierfaul..
..ich hab die ganze Zeit vor was zu machen... aber irgendwie kein ansporn es zu machen.. ~_~ ...ich mein etwas zu machen was man kann ..hat (für mich) keinen Reiz es zu machen (vorrausgesetzt es gehört net zum Job :D)

xOOn
11.06.2002, 13:31
oder du bist ein coder und ich nehm es nur als ausrede :cool: :cool: :cool:

Messiah_of_Death
11.06.2002, 21:17
...höhö kann auch sein.. Ausrede ..hihi ^-^


^-^ diese verdammte Winsock.pas sie geht und endlich seh ich keinen verdammten Asynchronus Socket Error ... (har har Network ! Now I come.. prepare to crash !! :D )

is das Teil Winsock 2.0 kompatibel ....naja ich weis zwar nicht was da anders sein soll aber besser ich frag mal :D

Felix Kaiser
12.06.2002, 02:36
Kompatibel zu allen 32-Bit WinSock Versionen. Außerdem haben die meisten Leute eh den 2er installiert, glaube nur Win95 wurde mit WinSock1.x ausgeliefert ...

Messiah_of_Death
12.06.2002, 11:22
oki ^-^ DANKE ...

jetzt hab ich endlich wieder was das mich beschäftigt :D

D4N73
13.06.2002, 12:31
Jo ... mein server und client funzt... ich kann auch texte von memo zu memo senden... doch wie kriege ich das mit einem edit hin ???

ich muss das irgentwie mit einer variable (String) machen... doch das klappt net so richtig ;)

ihr wisst das mehr als ich :)

thx

D4N73

visit: http://elite.to/elitecorps

Felix Kaiser
13.06.2002, 16:01
Eigentlich genauso, beschreib doch mal was genau dein Prob damit ist.

D4N73
13.06.2002, 17:14
also.. bei mir steht memo1.Lines.Add.ClientServerSocket...

oder so... weiss das net so genau aus dem kopf...

und ich will das mit nem edit machen... das geht net...
wenn ich Edit1.Text.Add.ClientServerSocket....

thx

D4N73

Felix Kaiser
13.06.2002, 21:09
Text ist eine Eigenschaft des Typs string, Lines war ein Objekt der Klasse TStringList. Du kannst der Eigenschaft Text den Wert von Socket.ReceiveText zuweisen, eine Funktion Add kann ein Typ string nicht haben, da er ja kein Objekt ist.