AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Welcher Dienst hinter welchem Port?
Thema durchsuchen
Ansicht
Themen-Optionen

Welcher Dienst hinter welchem Port?

Ein Thema von jackie · begonnen am 2. Mär 2004 · letzter Beitrag vom 5. Mär 2004
Antwort Antwort
Seite 2 von 2     12   
Blechwolf

Registriert seit: 9. Sep 2003
Ort: Aachen
126 Beiträge
 
Delphi 7 Professional
 
#11

Re: Welcher Dienst hinter welchem Port?

  Alt 5. Mär 2004, 15:28
Zitat von neolithos:
Delphi-Quellcode:
var p : servent;
    sTmp : String;
begin
  p := getservbyport(22, nil);
  if p = nil then
     begin
       sTmp := p^.s_name; // Kopiere inhalt
       Edit1.Text := sTmp;
     end;
end;
Mal dumm gefragt, wäre if p <> nil nicht geschickter ?

Grüße

Wolf
Ein Schiff im Hafen ist sicher. Aber dafür werden Schiffe nicht gebaut. (engl. Sprichwort)
  Mit Zitat antworten Zitat
jackie
(Gast)

n/a Beiträge
 
#12

Re: Welcher Dienst hinter welchem Port?

  Alt 5. Mär 2004, 15:38
Hi!
Also wenn ich die Version mit if p = nil then ... benutze dann bekomme ich eine AV.
Bei if p <> nil then ... tut sich gar nichts, wenn ich auf den Button drücke.
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#13

Re: Welcher Dienst hinter welchem Port?

  Alt 5. Mär 2004, 15:40
Erstmal Ups.

Zitat von jackie:
if p <> nil then ...
So ist es richtig!

Hast du

WSAStartup bzw. WSACleanUp gerufen?
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#14

Re: Welcher Dienst hinter welchem Port?

  Alt 5. Mär 2004, 15:43
Meine Weisheiten kann man unter

MSDN (Microsoft)

nachlesen.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
jackie
(Gast)

n/a Beiträge
 
#15

Re: Welcher Dienst hinter welchem Port?

  Alt 5. Mär 2004, 15:44
Zitat:
Hast du

WSAStartup bzw. WSACleanUp gerufen?
Nein. Wie soll ich das denn aufrufen?
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Welcher Dienst hinter welchem Port?

  Alt 5. Mär 2004, 16:06
Zitat von jackie:
Nein. Wie soll ich das denn aufrufen?
So, wie in dem Codebeispiel in deinem ersten Post

Allerdings sollte dann keine Access Violation ausgelöst werden, sondern ein WSAENOTINITIALIZED (oder so ähnlich, ich hab grad kein PSDK da, auf Jeden Fall eine 5stellige Zahl mit einer 1 vorne ).
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Welcher Dienst hinter welchem Port?

  Alt 5. Mär 2004, 16:07
öhmm jackie, Du machst es ja doch:

Zitat:
Hast du
WSAStartup bzw. WSACleanUp gerufen?

Nein. Wie soll ich das denn aufrufen?
Nämlich genau hier (Dein 1. Post):
Zitat von jackie:
...
if WsaStartup(MakeWord(1, 1), W) = 0 then
...
WSACleanup;
...
Allerdings würde ich Dir empfehlen, diese beiden Aufrufe
in einen Ressourcenschutzblock TRY/FINALLY zu legen,
weil mit WSAStartup die WS2_32.dll dynamisch nachgeladen
wird, und Du dann sicherstellt, dass am Ende alles wieder
aufgeräumt wird.
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
jackie
(Gast)

n/a Beiträge
 
#18

Re: Welcher Dienst hinter welchem Port?

  Alt 5. Mär 2004, 17:16
@APP: Ich hab das mit dem getservbyport gar nicht in die erste funktion eingebaut, sondern wollte es einfach im OnClick eines Buttons aufrufen, da ich keine Ahnung habe, wo ich es in der oben gezeigten Funktion einbinden soll.
Wenn es mir jemand zeigen kann, wäre ich sehr dankbar.
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Welcher Dienst hinter welchem Port?

  Alt 5. Mär 2004, 18:01
Hallo Gregor,
mal schnell zusammengezimmert:

Delphi-Quellcode:
VAR
  p : PServEnt;
  WSAData : TWSADATA;
  Port : DWORD;
BEGIN
  // FTP
  Port := 21;
  IF WsaStartup(MakeWord(2, 0), WSAData) = 0 THEN
  TRY
    // Achtung, Port muss in Network Byte Order vorliegen
    p := getservbyport(hTons(Port), NIL);
    IF WSAGetLastError = 0 THEN
      BEGIN
        IF p <> NIL THEN
          BEGIN
            Edit1.Text := p^.s_name;
          END;
      END
    ELSE
      BEGIN
        CASE WSAGetLastError OF
          WSANOTINITIALISED: ShowMessage('A successful WSAStartup call must occur before using this function');
          WSAENETDOWN: ShowMessage('The network subsystem has failed.');
          WSAHOST_NOT_FOUND: ShowMessage('Authoritative Answer Service not found.');
          WSATRY_AGAIN: ShowMessage('A nonauthoritative Service not found, or server failure.');
          WSANO_RECOVERY: ShowMessage('Nonrecoverable errors, the services database is not accessible.');
          WSANO_DATA: ShowMessage('Valid name, no data record of requested type.');
          WSAEINPROGRESS: ShowMessage('A blocking Windows Sockets 1.1 call is in progress, or the service provider is still processing a callback function.');
          WSAEFAULT: ShowMessage('The proto parameter is not a valid part of the user address space.');
          WSAEINTR: ShowMessage('A blocking Windows Socket 1.1 call was canceled through WSACancelBlockingCall.');
        END;
      END;
  FINALLY
    WSACleanup;
  END;
END;
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
jackie
(Gast)

n/a Beiträge
 
#20

Re: Welcher Dienst hinter welchem Port?

  Alt 5. Mär 2004, 18:06
Hallo APP!
Danke, das funktioniert wunderbar.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 23:34 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