servuß
ich bin dabei einen kleinen chat zu schreiben, wie wahrscheinlich jeder am anfang ^^
funktioniert auch schon soweit alles, verbindung steht, text kann gesendet werden usw.
ABER: ich kann nur vom clienten zum server eine nachricht schicken, aber nicht vom server zum clienten.
ich such das problem jetzt schon die ganze zeit, kanns aber nicht finden.
Wenn ich vom server aus eine nachricht(bzw nen text) zum clienten schicken will, kommt:
Windows-Socket-Fehler: Eine anforderung zum senden oder empfangen von daten wurde verhindert, da der socket nicht verbunden ist und (beim senden über einen datagrammsocket mit sento-aufruf) keine adresse angegeben wurde (10057), auf API 'send'
wtf? die verbindung steht aber.
hier mal der source vom server:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
serversocket1.Active := true;
serversocket1.Port := strtoint(edit1.text);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.clear;
edit1.text := '6900';
memo1.lines.add('----Welcome----');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
serversocket1.Active := false;
Application.Terminate;
end;
procedure TForm1.ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
showmessage('An Error occurred while connecting, try again');
errorcode := 0;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
// nur zahlen erlauben
if not (key in ['0'..'9', char(vk_back)]) then
key := #1;
end;
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.add('Connected: welcome :) ');
Memo1.lines.add('-------------------');
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.lines.Add(socket.ReceiveText);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
serversocket1.Socket.SendText(edit2.text);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
serversocket1.Close;
end;
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.lines.add('status: Disconnected');
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
MessageDlg('blabla', mtInformation , [mbOK] ,0);
end;
end.
ich bedanke mich jetzt schon für die hilfe
gruß