Entwickler-Ecke
Internet / Netzwerk - Scktcomp keine verbindung.
Snibb - Do 26.07.07 14:14
Titel: Scktcomp keine verbindung.
Hallo,
ich bin neu hier ^^. Ich schreibe gerade ein Programm, ohne VCL, das heisst ohne
dass das mit den Events so einfach geht. Und zwar habe ich jetzt eine Klasse für
ein Socket geschrieben, damit das einfacher ist.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| type sockclient = class private socket: TClientSocket; procedure ClientRead(Sender: TObject; Sock: TCustomWinSocket); public constructor Create(); function Connect(IP: string; port: integer): bool; procedure Send(text: string); end;
constructor sockclient.Create(); begin socket := TClientSocket.Create(nil); socket.active := false; socket.onread := ClientRead; end;
function sockclient.Connect(IP: string; port: integer) : bool; begin result := true; socket.host := IP; socket.port := port; if not socket.active then begin try socket.Active := true; except result := false; end; end end;
procedure sockclient.ClientRead(Sender: TObject; Sock: TCustomWinSocket); begin MessageBox(0, '', 'guuut', MB_OK); end;
procedure sockclient.Send(text: string); begin
end;
var sinclient: sockclient; |
da muss bei connect was falsch sein.... so wirds aufgerufen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| run := true; sinclient := sockclient.Create; while run do begin repeat Sleep(5000); until sinclient.Connect('127.0.0.1', 1337); end; |
aber beim empfänger kommt nichts an....
Da muss beim Connecten oder so etwas falsch sein. Beim Empfänger schauts so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm2.sinsockClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin sin.Cols[0].add(socket.RemoteAddress); socket.SendText('SendNames'); end; |
aber weder erscheint der client beim empfänger in der liste, noch kommt die MsgBox,
die beim Client beim Empfangen von Daten kommen sollte. Am Empfänger kanns nicht liegen, andere Clienten erscheinen nämlich.
Bitte um Hilfe,
grtz Snibb
Narses - Do 26.07.07 14:34
Titel: Re: Scktcomp keine verbindung.
Moin und :welcome: im Forum!
Snibb hat folgendes geschrieben: |
| Programm, ohne VCL, das heisst ohne dass das mit den Events so einfach geht. |
Naja, soo schwer ist das nun auch wieder nicht, eine Methode anzulegen und diese dann einem dynamisch erzeugten Objekt zuzuweisen... 8)
Kuckst du [
http://www.delphi-library.de/topic_60744.html] ;)
Allerdings sowas hier:
Snibb hat folgendes geschrieben: |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| run := true; sinclient := sockclient.Create; while run do begin repeat Sleep(5000); until sinclient.Connect('127.0.0.1', 1337); end; | |
ist nicht ereignisorientierte Programmierweise (abgesehen davon, dass ein TClient-/TServerSocket ohne ein TApplication-Objekt sowieso nicht so ganz richtig funktioniert). :?
Wenn schon nonVCL, dann richtig: blocking-socket-calls und Threads oder gleich Indy. :mahn:
cu
Narses
Snibb - Do 26.07.07 14:40
hab ich jetzt nich kapiert ^^
was genau muss ich jetzt machen ist das jetzt machbar oder nicht?
Narses - Do 26.07.07 14:47
Moin!
Snibb hat folgendes geschrieben: |
| ist das jetzt machbar oder nicht? |
Machbar ist eine Menge, die Frage ist, wieviel Aufwand das ist... 8) :lol:
Snibb hat folgendes geschrieben: |
| was genau muss ich jetzt machen |
So wie du das ansetzt - gar nichts weiter in dieser Richtung, das wird nix. :|
:idea:
a) IdTCPServer und IdTCPClient von den Indies nehmen
b) den TClient-/TServerSocket im blocking-mode betreiben und jeweils einen Thread dafür abspalten (wenn dir das nix sagt, dann bleibt faktisch nur noch a)... :?)
cu
Narses
Snibb - Do 26.07.07 14:59
ach ka**e dann halt her mit VCl... mist
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!