Hallo Leute,
ich versuche momentan ein TCP Server auf meinem Linux Server zum laufen bringen.
Kurz zu meinem Problem:
Der Server der startet sich auch (angeblich) laut der ausgabe richtig, doch sobald ich mit nmap den Port auf meinem linux server scannen sagt nmap, dass dort kein programm läuft. Also läufte doch mein Server da nicht.
Hier einmal der Output meiner Console:
bei Serverstart:
und von nmap:
und hier abschließend der Code:
ich habe den fehler gefunden
bei der Portbelegung muss es so lauten:
ich versuche momentan ein TCP Server auf meinem Linux Server zum laufen bringen.
Kurz zu meinem Problem:
Der Server der startet sich auch (angeblich) laut der ausgabe richtig, doch sobald ich mit nmap den Port auf meinem linux server scannen sagt nmap, dass dort kein programm läuft. Also läufte doch mein Server da nicht.
Hier einmal der Output meiner Console:
bei Serverstart:
Server wird gestartet....
Socket wird erstellt...
Socket wurde erfolgreich erstellt!
Eine Adresse wird erstellt ...
Eine Adresse wurde erfolgreich hergestellt!
Warteschlange wird erstellt...
Es wurde eine Warteschlange erstellt!
Es wird auf eingehende Verbindungen gewartet!
Hallo!
und von nmap:
Starting Nmap 6.47 ( nmap.org ) at 2016-08-02 17:12 UTC
Nmap scan report for 192.168.0.11
Host is up (0.00048s latency).
PORT STATE SERVICE
4000/tcp closed remoteanything
und hier abschließend der Code:
C-Quellcode
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <arpa/inet.h>
- #include <iostream>
- #include <stdio.h>
- #include <errno.h>
- int main(){
- std::cout << "Server wird gestartet.... " << std::endl;
- std::cout << "Socket wird erstellt..." << std::endl;
- int sock = socket(AF_INET, SOCK_STREAM, 0), sock2;
- if(sock < 0){
- printf("%s\n", strerror(errno));
- return 1;
- }else{
- std::cout << "Socket wurde erfolgreich erstellt!" << std::endl;
- }
- std::cout << "Eine Adresse wird erstellt ..." << std::endl;
- struct sockaddr_in server;
- memset( &server, 0 ,sizeof(server));
- server.sin_family = AF_INET;
- server.sin_addr.s_addr = htonl(INADDR_ANY);
- server.sin_port = htonl(4000);
- if(bind( sock, (struct sockaddr*)&server, sizeof( server)) < 0){
- printf("%s", strerror(errno));
- }else{
- std::cout << "Eine Adresse wurde erfolgreich hergestellt!" << std::endl;
- }
- std::cout << "Warteschlange wird erstellt..." << std::endl;
- if( listen( sock, 40) == -1){
- printf("%s", strerror(errno));
- return 1;
- }else{
- std::cout << "Es wurde eine Warteschlange erstellt!" << std::endl;
- }
- socklen_t len;
- std::cout << " Es wird auf eingehende Verbindungen gewartet!" << std::endl;
- for(; ; ){
- std::cout << "Hallo!" << std::endl;
- len = sizeof(server);
- sock2 = accept(sock, (struct sockaddr*)&server, &len);
- if(sock2 < 0){
- std::cout << strerror(sock2) << std::endl;
- return 1;
- }
- std::cout << "Funktioniert!" << std::endl;
- }
- return 0;
- }
ich habe den fehler gefunden
bei der Portbelegung muss es so lauten:
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ctextrem“ ()