Hallo,
ich sitze nun schon längere Zeit ein einem grundlegenden Problem, ich schaffe es nicht das mein Server einem Client Daten sendet.
Ich möchte mit dem Programm erreichen das es sich "zwischen" 2 rechner schaltet, also z.b. Client und
IRC Server, damit kann man z.b. die Portsperre an einigen Orten umgehen.
Dazu connecte ich mit meinem Programm zu dem IrcServer und zu einem
Irc Client (Trillian etc.), das Problem liegt darin das mein Programm Trillian nicht mitteilt was es vom IrcServer erhält.
Der Fehler liegt irgendwo bei serversocket.Socket.Connections[0].SendText(empfangen), aber ich weiß nicht wie ich es sonst machen kann.
Delphi-Quellcode:
function TMainForm.connect():boolean;
begin
ServerSocket.Port:=1024;
ServerSocket.Open;
if ClientSocket.Active
then ClientSocket.Close;
ClientSocket.host :='
irc.spotchat.org';
ClientSocket.Port :=6667;
ClientSocket.Open;
end;
procedure TMainForm.ToolButton1Click(Sender: TObject);
begin
connect;
end;
procedure TMainForm.ClientSocketRead(Sender: TObject;
Socket: TCustomWinSocket);
var empfangen:
string;
begin
empfangen := Socket.ReceiveText;
memo1.Lines.Add(empfangen);
if serversocket.Socket.Connected
then serversocket.Socket.Connections[0].SendText(empfangen);
end;
procedure TMainForm.ToolButton2Click(Sender: TObject);
begin
ClientSocket.Close;
ServerSocket.Close;
end;
procedure TMainForm.ServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var empfangen:
string;
begin
empfangen := Socket.ReceiveText;
memo1.Lines.Add(empfangen);
clientsocket.Socket.SendText(empfangen);
end;
procedure TMainForm.ServerSocketClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('
OnAccept');
Memo1.Lines.Add(Socket.RemoteAddress +'
remoteadress');
Memo1.Lines.Add(IntToStr(Socket.RemotePort)+'
remoteport');
Memo1.Lines.Add(Socket.LocalAddress+'
localadress');
Memo1.Lines.Add(IntToStr(Socket.LocalPort)+'
localport');
end;
Ich danke schonmal im Vorraus für Eure Hilfe.