kostenloser Webspace werbefrei: lima-city


Freie Ports

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    sy

    Kostenloser Webspace von sy

    sy hat kostenlosen Webspace.

    Hallo

    (ich hätte das ganze auch in C/C++ und/oder PHP+MySQL machen können, aber dann hätte ich es
    zwei mal posten müssen, was ich nich wollte. Der Source ist in Java also schreibe ich es mal hier rein)

    ich habe eine frage: ich möchte alle freien ports (unbelegte Ports) auslesen etwa so wie hier:
    http://www.informatikerboard.de/topic,287,-freie-ports---netzwerkprogrammierung.html
    Nur geht das auch in PHP oder C?
    Könnte mir das einer mal in php oder c erklären oder mal bitte den sourcecode posten?
    Wäre echt super ;)

    Gruß
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. e********l

    Geht unter jeder Sprache die Socket Verbindungen aufbauen kann.

    Einfach von 1 bis 65536 loopen und für jeden Port versuchen eine Verbindung aufzubauen. Wenn die Verbindung erstellt werden konnte ist der Port "derzeit" frei und wird von keiner anderen Anwendung zum selben Zeitpunkt verwendet.

    Eigentlich kannst du den Code aus dem Link den du gepostet hast doch übernehmen. In PhP sieht das nicht viel anders aus.
  4. Autor dieses Themas

    sy

    Kostenloser Webspace von sy

    sy hat kostenlosen Webspace.

    naja aber der code muss erst mit nem java compiler kompiliert werden das geht doch in php z.B nicht
    und in C, soll es da die endung .c haben und in nem c compiler kompiliert werden?
    achso und dann steht ja noch das hier:

    import java.net.DatagramSocket;
    import java.net.SocketException;

    public class test

    und ob sich das mit C verträgt
  5. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    //Are we debugging?
    //#define DEBUG
     
    #include <stdio.h>
    #include <stdlib.h>
    
    #ifndef WIN32
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <netdb.h>
    #include <arpa/inet.h>
    #endif
    
    #ifdef WIN32
    #include <windows.h>
    #include <winsock2.h>
    #endif
    
    
    int main(void)
    {
      int i;                           //laufvariable
      int sock;                        //socket
      struct sockaddr_in addr;
    
    #ifdef WIN32
      WSADATA wsa;
      if(WSAStartup(MAKEWORD(2,0),&wsa)!=0)
      {
        printf("fehler: winsock konnte nicht gestartet werden!\\n");
        return 1;
      }
      #ifdef DEBUG
      else
        printf("winsock gestartet...\\n");
      #endif
    #endif
     
      sock=socket(AF_INET,SOCK_STREAM,0);   //socket erstellen
     
      if(sock<0)   //Invalid socket
      {
        printf("fehler: socket konnte nicht erstellt werden!\\n");
        #ifdef WIN32
          WSACleanup();
        #endif
        return 1;
      }
      #ifdef DEBUG
        else
          printf("socket erstellt...\\n");
      #endif
     
      for(i=1;i<=65536;++i)
      {
        memset(&addr,0,sizeof(addr));   //Adresse erst auf 0 setzen
        addr.sin_family=AF_INET;
        addr.sin_port=htons(i);
        addr.sin_addr.s_addr=inet_addr("127.0.0.1");
        if(connect(sock,(struct sockaddr*)&addr,sizeof(addr))<0)
        {
          printf("fehler: connect gescheitert!\\n");
          printf("Port %i ist belegt!\\n");
        }
        else
          printf("Port %i ist frei\\n",i);
    
        #ifdef WIN32
          closesocket(sock);
        #else
          close(sock);
        #endif
      }
    
      #ifdef WIN32
        WSACleanup();
      #endif
    
      return 0;
    }


    Mit C sollte es ca. so aussehen, ist allerdings noch komplett ungetestet und zum kompilieren unter Windows muss der Quellcode noch gegen "ws2_32.lib" gelinkt werden. Diese Datei ist z. B. bei Visual Studio dabei.


    €dit: Immer diese nervigen doppelten Backslashes...

    Beitrag geändert: 14.8.2008 12:58:32 von kochmarkus
  6. Autor dieses Themas

    sy

    Kostenloser Webspace von sy

    sy hat kostenlosen Webspace.


    und zum kompilieren unter Windows muss der Quellcode noch gegen "ws2_32.lib" gelinkt werden. Diese Datei ist z. B. bei Visual Studio dabei.


    und wie linkt man den source mit ws2_32.lib :$?
    Als Compiler hab ich "nur" Dev-C
  7. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    Ein neues Projekt erstellen und in den Projektoptionen unter Libaries die entsprechende Datei hinzufügen.
  8. Autor dieses Themas

    sy

    Kostenloser Webspace von sy

    sy hat kostenlosen Webspace.


    unter Libaries die entsprechende Datei hinzufügen.


    Sry wenns ne doofe frage ist aber woher bekomme ich die ws_win32.lib?







    Beitrag geändert: 14.8.2008 13:08:36 von sy
  9. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    Sry wenns ne doofe frage ist aber woher bekomme ich die ws_win32.lib?

    Du hast eine PN...
  10. Autor dieses Themas

    sy

    Kostenloser Webspace von sy

    sy hat kostenlosen Webspace.

    danke dir!
  11. e********l


    naja aber der code muss erst mit nem java compiler kompiliert werden das geht doch in php z.B nicht
    und in C, soll es da die endung .c haben und in nem c compiler kompiliert werden?

    Ich sag ja, du kannst es auch über PHP machen. In der PHP Hilfe-Datei steht unter Sockets genug Info-Material um den Rest selbst zu schreiben. PHP hat schließlich auch Netzwerk Funktionalitäten an Bord.
  12. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.


    öhm kleines prob. bei neues projekt nimmt dev c++ nur *.dev dateien und keine *.lib
    mach ich was falsch? achso und da steht auch nur static libary *.a


    Beitrag geändert: 14.8.2008 13:53:01 von sy

    Du musst ein neues leeres C Projekt starten, dann kopierst du meinen Quellcode in die main.c, klickst dann auf Projektoptionen und trägst dort unter Libaries die ws2_32.lib ein.
    Danach solltest du das Programm kompilieren und ausführen können.
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!