AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Socket Error # 10022
Thema durchsuchen
Ansicht
Themen-Optionen

Socket Error # 10022

Ein Thema von T.E. · begonnen am 22. Sep 2007 · letzter Beitrag vom 24. Sep 2007
Antwort Antwort
T.E.

Registriert seit: 27. Mai 2007
Ort: Hamburg
284 Beiträge
 
Delphi XE2 Enterprise
 
#1

Socket Error # 10022

  Alt 22. Sep 2007, 12:20
Hallo!

Ich bin gerade dabei ein kleines Email Versende Prog zu schreiben. Dazu benutze ich die Indys und als ich nun mein Programm compilieren wollt bekam ich folgende Meldung zurück...

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Register.exe ist eine Exception der Klasse EIdSocketError aufgetreten. Meldung: 'Socket Error # 10022
Invalid argument.'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------


Ich hab dann auf Ok geklickt und mit einzelnem schritt vorwärts weitergemacht...und bekam dann folgende Meldung:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Register.exe ist eine Exception der Klasse EIdCouldNotBindSocket aufgetreten. Meldung: 'Could not bind socket. Address and port are already in use.'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------

Welche bei erneutem Fortsetzen ... mit der Meldung:
---------------------------
Register
---------------------------
Could not bind socket. Address and port are already in use.
---------------------------
OK
---------------------------
"belohnt" wurde...

Woran liegt das??

Sowohl meine E-Mailadresse als auch der Port ist richtig...
Gruß Torben
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#2

Re: Socket Error # 10022

  Alt 22. Sep 2007, 12:58
Das ließt sich erstmal so als ob du versuchen würdest, einen Indy-Server zu aktivieren.
Beim Client Host und Port gesetzt? Mehr fällt mir so auch nicht ein.. Ein bisschen Code wäre vielleicht auch nicht schlecht.
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
T.E.

Registriert seit: 27. Mai 2007
Ort: Hamburg
284 Beiträge
 
Delphi XE2 Enterprise
 
#3

Re: Socket Error # 10022

  Alt 22. Sep 2007, 14:54
also hier ist der code für das senden...

Delphi-Quellcode:
unit SendUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, XPMan, ComCtrls, StdCtrls, IdMessage, IdTCPConnection,
  IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase,
  IdSMTP, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL,
  IdBaseComponent, IdComponent, IdServerIOHandler, IdAntiFreezeBase,
  IdAntiFreeze, Menus, IdIPWatch, IdVCard, IdUserPassProvider;

type
  TSend = class(TForm)
    Send: TButton;
    msg: TMemo;
    ListBox1: TListBox;
    IdSMTP1: TIdSMTP;
    IdMessage1: TIdMessage;
    IdAntiFreeze1: TIdAntiFreeze;
    procedure SendClick(Sender: TObject);
    procedure BackClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure CancelClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure smtpSendMailStatus(ASender: TObject;
      const AStatus: TIdStatus; const AStatusText: String);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    procedure Status(AMsg: string);
  end;

var
  Send: TSend;

implementation

uses
  commctrl, OtherOptionsUnit, RegisterUnit;
{$R *.dfm}

procedure TSend.FormShow(Sender: TObject);
var
  r: TRect;
begin
Msg.text := 'Hallo:' + #13#10 + Hallo.text;
end;

procedure TSend.SendClick(Sender: TObject);
var s : string;
begin
 Send.Enabled := False; try
    with idmessage1 do begin
      Clear;
      From.Text := Trim('Bsp@bsp.de'); {Absender}
      Recipients.Add.Text := Trim('Hallo@Tschüß.de'); {Empfänger}
      Subject := Trim('Ich habe leider keinen Betreff'); {Betreff}
      Body.Assign(msg.Lines); {Hier kommt die Nachricht hinein}
    end;
    with IDSmtp1 do begin
      Username := Trim('Bsp');
      Password := Trim('BspPasswort');
      Host := Trim('BspHost');
      Port := 25;
      Connect; try
      Send(idmessage1);
      finally Disconnect; end;
    end;
    Status('Completed');
  finally Send.Enabled := True; end;
    s := 'Die Nachricht wurde an den EMpfänger versendet!';
  ShowMessage(s);
  close;
Application.terminate;
end;

procedure TSend.smtpSendMailStatus(ASender: TObject;
  const AStatus: TIdStatus; const AStatusText: String);
begin
  Status(AStatusText);
end;

procedure TSend.Status(AMsg: string);
begin
  ListBox1.ItemIndex := ListBox1.Items.Add(AMsg);
  Application.ProcessMessages;
  Application.ProcessMessages;
  Application.ProcessMessages;
end;

end.
Also wie dem einen oder anderen vllt. schon aufgeffallen ist, ist es bei diesem Code nicht möglich den Absender oder Empfänger zu ändern (es seiden mann besitzt den quellcode... aber naja...

Das sind die wichtigsten codezeilen (ganauer gesagt sind das die seit denen ich das Projekt nicht mehr Fhlerfrei ausführen kann...)

Eine allgemeine Info ist noch: Das Prog hat insgesamt 4 Formulare... wovon eins hier ja zu sehen ist und das andere nur ein paar edits enthält, deren inhalt die nachricht ist...
Gruß Torben
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#4

Re: Socket Error # 10022

  Alt 24. Sep 2007, 15:59
Hi!

Also, diese TIdSMTP und TIdMessage habe ich noch nie benutzt. Weiß also nicht, was da für Dinge passieren können
Um das Connect würde ich noch ein try...except drumbauen. Der Host auch? (Frage die dumme Frage, weil du oben nur geschrieben hast der Port passt)..
Sorry, so richtig kann ich dir nicht helfen.. Vielleicht teste ich das ganze aber selbst später mal und melde mich dann nochmal..

Edit: Also, ich habe deinen Code mal getestet. Bei mir sieht das jetzt so aus:

Delphi-Quellcode:
    with idmessage1 do
    begin
      Clear;
      From.Text := Trim('meine@email.de'); {Absender}
      Recipients.Add.Text := Trim('meine@email.de'); {Empfänger}
      Subject := Trim('Ich habe leider keinen Betreff'); {Betreff}
      Body.Assign(msg.Lines); {Hier kommt die Nachricht hinein}
    end;

    with IDSmtp1 do
    begin
      Host := Trim('smtp.email.de');
      Port := 25;
      try
        Connect;
        Send(idmessage1);
      except
        on e: Exception do
        begin
          ShowMessage(e.Message + e.ClassName);
        end;
      end;
    end;
Das Funktioniert hier einfach nur. Den Benutzernamen und das Passwort habe ich rausgemacht, im IdSMTP1 AutoType auf atNone gesetzt. Ich muss halt vorher mein Konto abfragen, dann ist es für x Minuten zum Mail senden freigeschaltet. Liegt da eventuell bei dir der Fehler? Das try...except könnte dir auch weiterhelfen. So, das wars von mir
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
T.E.

Registriert seit: 27. Mai 2007
Ort: Hamburg
284 Beiträge
 
Delphi XE2 Enterprise
 
#5

Re: Socket Error # 10022

  Alt 24. Sep 2007, 16:25
Also Port ist in der Regel ja immer 25 und deshalb hab ich den weg gelassen... un die restlichen Infos wären... bei eneme Web.de emailkonto nur der server (smtp.web.de) und der rest ist ja klar....usrename, passwort, emailadressen....

Aber zurück zu mienem problem ... vielleicht können das ja ein paar mal testen...
Gruß Torben
  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 21:25 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