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.
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