AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi String wird nicht übers Netzwerk gesendet
Thema durchsuchen
Ansicht
Themen-Optionen

String wird nicht übers Netzwerk gesendet

Ein Thema von 24jb · begonnen am 1. Mai 2007 · letzter Beitrag vom 5. Mai 2007
Antwort Antwort
24jb

Registriert seit: 6. Apr 2007
27 Beiträge
 
#1

String wird nicht übers Netzwerk gesendet

  Alt 1. Mai 2007, 17:39
Hallo,

habe folgendes Problem mit einem kleinen Programm, vielleicht könnt ihr mir helfen.

Eigendlich soll nur ien einfacher Text ('Hallo'), über eine Netzwerkverbindung geschickt werden.

Er geht aber sprichwörtlich ohne Fehlermeldung ins Nivada.

Alles andere (Verbindung erstellen und überprüfuen etc. funktioniert einwandfrei.)

Wo ist der Fehler?

Bin am verzweifeln (3, 5 STunden daran rumprobiert)

Hier der Code
Delphi-Quellcode:
[b]ServerCode[/b]

procedure TForm1.FormCreate(Sender: TObject; Socket: TCustomWinSocket);
begin
      //Server wird geöffnet
        ServerSocket1.Open;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Begin
       //Die Verbindung wird beendet
   ServerSocket1.Close;
end;

procedure TForm1.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);
var nachricht: String;
begin
     //Der Text kommt in die Varibale nachricht
     nachricht :=Socket.ReceiveText;

        //Text wird dem memofeld hinzugefügt
        Memo1.Lines.Add(nachricht);
end;


[b]ClientCode[/b]

procedure TForm1.FormCreate(Sender: TObject);
begin
         // Verbindung wird hergestellt
          ClientSocket1.Open;
end;

procedure TForm1.sendenClick(Sender: TObject; Socket: TCustomWinSocket);
begin
          //Nachricht wird gesendet
        ClientSocket1.Socket.SendText('Hallo');
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
        // Verbindung wird hergestellt
          ClientSocket1.close;
end;
  Mit Zitat antworten Zitat
1. Mai 2007, 18:32
Dieses Thema wurde von "Matze" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Internet / LAN / ASP.NET" verschoben.
In die Code-Library gehören nur fertige Code-Snippets.
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#3

Re: String wird nicht übers Netzwerk gesendet

  Alt 1. Mai 2007, 18:57
Hallo,
Dein Problem kann ich leider nicht erkennen.
Welche Komponente feuert diese Event: sendenClick ?


Ich habe Dir mal ein funktionierendes Beipiel angehängt
Angehängte Dateien
Dateityp: zip zip_137.zip (186,7 KB, 19x aufgerufen)
I come from outer space to save the human race
  Mit Zitat antworten Zitat
24jb

Registriert seit: 6. Apr 2007
27 Beiträge
 
#4

Re: String wird nicht übers Netzwerk gesendet

  Alt 1. Mai 2007, 19:14
Vielen Dank,

eine Frage noch, wo liegt beim Client der direkte unterschied zwischen Host und Adresse, ich habe bei beiden die ip angegeben, weil ich nichts darüber gefunden habe.
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#5

Re: String wird nicht übers Netzwerk gesendet

  Alt 1. Mai 2007, 20:04
Hi,

bei Host kannst du einen Hostnamen oder eine IP verwenden.

bei Adresse nur eine IP.

Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
24jb

Registriert seit: 6. Apr 2007
27 Beiträge
 
#6

Re: String wird nicht übers Netzwerk gesendet

  Alt 2. Mai 2007, 17:18
So, den Chat habe ich jetzt hinbekommen.
Aber ich hab noch eine Frage:

Wenn ich vom ServerSocket die Verbindung trenne, gibt es beim clientSocket eine Event dafür, doch umgekehrt finde ich es nicht, gibt es da eine andere Möglichkeit?

Lg
  Mit Zitat antworten Zitat
24jb

Registriert seit: 6. Apr 2007
27 Beiträge
 
#7

Re: String wird nicht übers Netzwerk gesendet

  Alt 2. Mai 2007, 18:36
So leider ist beim Testen des Chats über ein richtiges Netztwerk (Programiert und erster Test mit 127.0.0.1) hat leider nicht funktioniert, sondern es entstand folgender Fehler:

"Asynchronous socket error 10061"

Die Firewall ist bei beiden Pc´s ausgeschaltet.

Hier der Quellcode:

hoffentlich kann mir jemand einen Tipp geben

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ScktComp, StdCtrls, Spin;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label2: TLabel;
    Label4: TLabel;
    mclientverbinden: TButton;
    mserververbinden: TButton;
    Label5: TLabel;
    Label6: TLabel;
    textc: TEdit;
    Edit1: TEdit;
    ssenden: TButton;
    csenden: TButton;
    ServerMemo: TMemo;
    ClientMemo: TMemo;
    ClientSocket1: TClientSocket;
    ServerSocket1: TServerSocket;
    Label7: TLabel;
    Label8: TLabel;
    SpinEdit1: TSpinEdit;
    SpinEdit2: TSpinEdit;
    Button1: TButton;
    Button2: TButton;
    ComboBox1: TComboBox;
    Procedure mclientverbindenClick(Sender: TObject);
    Procedure ServerSocket1Listen(Sender: TObject; Socket: TCustomWinSocket);
    Procedure mserververbindenClick(Sender: TObject);
    Procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);
    Procedure csendenClick(Sender: TObject);
    Procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
   Procedure ClientSocket1ServerRead(Sender: TObject; Socket: TCustomWinSocket);
    Procedure ssendenClick(Sender: TObject);
    Procedure Button2Click(Sender: TObject);
    Procedure Button1Click(Sender: TObject);
   Procedure clienttrennen(Sender: TObject; Socket: TCustomWinSocket);
   Procedure servertrennen(Sender: TObject; Socket: TCustomWinSocket);
    Procedure FormClose(Sender: TObject; var Action: TCloseAction);
    


  private
    { Private declarations }

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.mclientverbindenClick(Sender: TObject);
begin
   //ServerSocket wird geöffnet
    ServerSocket1.Port := SpinEdit1.Value;
    ServerSocket1.Active := True;
end;

procedure TForm1.ServerSocket1Listen(Sender: TObject; Socket: TCustomWinSocket);
begin
   //Wenn ServerSocket Listen erscheint Text
   ServerMemo.Lines.Add('/-- Listen --\');
    ServerMemo.Lines.Add('/-- Port: ' + IntToStr(ServerSocket1.Port));
end;

Procedure Tform1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);
begin
   //Wenn ClientSocket verbunden erscheint Text
   ClientMemo.lines.Add('/-- verbunden --\');
    ClientMemo.Lines.Add('/-- Port: ' + IntToStr(clientSocket1.Port));
end;

procedure TForm1.mserververbindenClick(Sender: TObject);
begin
   //Client wird verbunden/aktiviert
   ClientSocket1.Port := SpinEdit1.Value;
   ClientSocket1.Active := True;
    ClientSocket1.Address := ComboBox1.Text;
end;

procedure TForm1.csendenClick(Sender: TObject);
begin
   // Senden von text an Client
   If textc.Text = ' then
    else
    Begin
      If textc.Text = 'then
       else
          begin
            ClientSocket1.Socket.SendText(textc.Text);
             ClientMemo.Lines.Add('<Client>' + textc.Text);
                textc.Text := '';
          end;
     end;
end;

Procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
   //Text in ServerMemo schreiben
   ServerMemo.lines.Add('<Client>' + Socket.ReceiveText);
end;

Procedure TForm1.ClientSocket1ServerRead(Sender: TObject; Socket: TCustomWinSocket);
begin
   //Text in ClientMemo schreiben
   ClientMemo.Lines.Add('<Server>' + ClientSocket1.Socket.ReceiveText);
end;

procedure TForm1.ssendenClick(Sender: TObject);
begin
   // Senden von text an Server
   If Edit1.Text = ' then
    else
    Begin
      If Edit1.Text = 'then
       else
          begin
            ServerSocket1.Socket.Connections[0].SendText(Edit1.Text);
             ServerMemo.Lines.Add('<Server>' + Edit1.Text);
             Edit1.Text := '';
          end;
     end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   // trennen von Client
   ClientSocket1.Active := False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   // Trennen von Server
   ServerSocket1.Active := False;
      ServerMemo.Lines.Add('/-- getrennt --\')
end;


Procedure Tform1.clienttrennen(Sender: TObject; Socket: TCustomWinSocket);
Begin
   ClientMemo.Lines.Add('/-- getrennt --\')
end;

Procedure Tform1.servertrennen(Sender: TObject; Socket: TCustomWinSocket);
Begin
   ClientMemo.Lines.Add('/-- getrennt --\')
end;


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Begin
    //Die Verbindung wird beendet
   ServerSocket1.Active := False;
    ClientSocket1.Active := False;
end;


end.
Angehängte Dateien
Dateityp: zip project1_676.zip (460,3 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#8

Re: String wird nicht übers Netzwerk gesendet

  Alt 2. Mai 2007, 18:55
Dein Router muss die Ports noch forwarden, sonst klappt das nicht.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: String wird nicht übers Netzwerk gesendet

  Alt 2. Mai 2007, 19:20
Zitat von 24jb:
ClientSocket1.Port := SpinEdit1.Value;
ClientSocket1.Active := True;
ClientSocket1.Address := ComboBox1.Text;
Du öffnest erst den Socket und setzt dann die Adresse. Probiers mal andersherum.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
24jb

Registriert seit: 6. Apr 2007
27 Beiträge
 
#10

Re: String wird nicht übers Netzwerk gesendet

  Alt 5. Mai 2007, 08:26
Hallo,
Vielen dank für die Tipps, jetzt funktioniert es.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz