ERLEDIGT
NEIN
NEIN
ANTWORTEN
18
18
ZUGRIFFE
9251
9251
EMPFEHLEN
-
28.11.05 13:54 #1
- Registriert seit
- Aug 2005
- Ort
- Solingen ( NRW )
- Beiträge
- 152
Hallo
mein Problem bezieht sich auf die Socket Programmierung und zwar habe ich für den Client folgenden Code geschrieben:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
SOCKET MySocket; char serverip[20]; sockaddr_in addr; WSADATA wsaData; if (WSAStartup(MAKEWORD(2,0),&wsaData) != 0) { MessageBox(0,"WSA konnte nicht initialisiert werden","Fehler",MB_OK); return false; } hostent* dns = gethostbyname("FuhrparkServer"); sprintf(serverip, "%u.%u.%u.%u",(unsigned char) dns->h_addr_list[0][0], (unsigned char) dns->h_addr_list[0][1], (unsigned char) dns->h_addr_list[0][2], (unsigned char) dns->h_addr_list[0][3]); addr.sin_family = AF_INET; addr.sin_port = htons(110); addr.sin_addr.s_addr = inet_addr(serverip); MySocket = socket( AF_INET, SOCK_STREAM,0); if(MySocket == 0) { MessageBox(0,"Socket konnte nicht initalisiert werden","Fehler",MB_OK); return false; } if(connect(MySocket, (sockaddr *) &addr, sizeof(addr)) == -1) { MessageBox(0,"Es konnte keine Verbindung aufgebaut werden","Fehler",MB_OK); return false; } return true; }
Den Code habe ich von hier aus einem anderen Thread. Habe dann von einer Internetseite die mir hier auch empfohlen wird einen Server Code erstellt:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
SOCKET MySocket; char serverip[20]; sockaddr_in addr; sockaddr_in remote_addr; WSADATA wsaData; int size; int remote_sock; if (WSAStartup(MAKEWORD(2,0),&wsaData) != 0) { MessageBox(0,"WSA konnte nicht initialisiert werden","Fehler",MB_OK); return false; } addr.sin_family = AF_INET; addr.sin_port = htons(110); addr.sin_addr.s_addr = INADDR_ANY; MySocket = socket( AF_INET, SOCK_STREAM,0); if(bind(MySocket, (sockaddr* ) &addr, sizeof(addr)) == -1) { MessageBox(0,"Socket konnte nicht initalisiert werden","Fehler",MB_OK); return false; } if(listen(MySocket,1) == -1) { MessageBox(0,"Es konnte keine Verbindung aufgebaut werden","Fehler",MB_OK); return false; } fflush(stdout); size = sizeof(remote_addr); remote_sock = accept(MySocket,(sockaddr* ) &remote_addr, &size); fflush(stdout); if(remote_sock < 0) { _close(MySocket); MessageBox(0,"Socket geschlossen","Hinweis",MB_OK); return false; } fflush(stdout); size = send (remote_sock,"Wilkommen",11,0); if(size == -1) { MessageBox(0,"Fehler","Fehler",MB_OK); } else { MessageBox(0,"Gesendet","Hinweis",MB_OK); } _close(remote_sock); _close(MySocket); fflush(stdout); return true; }
Wie ich aber erkennen musste funktiniert gar nichts. Der Compiler hift mir nicht mehr der sagt alles ok, ich weiss net was ich falsch mache . Hab ich irgendwelche Bugs im Code oder wieso funktioniert das alles nicht.
Ich dachte das sich der Client verbindet und der Server ein Wilkommen zurück schickt aber nichts geht
Ich brauche dringend Hilfe
Gruß SilverCode :1
[COLOR=Blue][B]Wer [/B][I]Wie[/I] [B]Was[/B] [I]Wieso [/I][B]Weshalb[/B] [I]Warum [/I][B]Wer nicht fragt bleibt dumm [/B][/COLOR]
-
Wie siehts den mit dieser Zeile aus
Code :1
hostent* dns = gethostbyname("FuhrparkServer");
Ist das dein Host?
-
28.11.05 14:25 #3
- Registriert seit
- Aug 2005
- Ort
- Solingen ( NRW )
- Beiträge
- 152
So heist mein Server , muss da nicht der Name meines Servers rein
Code :1
[COLOR=Blue][B]Wer [/B][I]Wie[/I] [B]Was[/B] [I]Wieso [/I][B]Weshalb[/B] [I]Warum [/I][B]Wer nicht fragt bleibt dumm [/B][/COLOR]
-
Probiers doch mal mit "localhost" !
Dein Programmname vom Server hat hier eigentlich nichts zu suchen!
-
28.11.05 15:19 #5
- Registriert seit
- Aug 2005
- Ort
- Solingen ( NRW )
- Beiträge
- 152
achso ich dachte da müsste ich meinen Server eintragen.
Ok danke jetzt sagt er mir zumindestens das keine Verbindung aufgebaut werden kann.
Kannst du mir eventuell noch helfen wie ich den Code verändern muss, damit ich ne Verbindung kriegeCode :1
[COLOR=Blue][B]Wer [/B][I]Wie[/I] [B]Was[/B] [I]Wieso [/I][B]Weshalb[/B] [I]Warum [/I][B]Wer nicht fragt bleibt dumm [/B][/COLOR]
-
Das einzige was ich sehen kann (ich vermute du startest den Client vor dem Server
) ist die Stelle
Versuche mal das INADDR_ANY durch ADDR_ANY zu ersetzen?Code :1
addr.sin_addr.s_addr = INADDR_ANY;
gruß!Code :1
addr.sin_addr.s_addr = ADDR_ANY;
edit: Wobei, dass ist Quatsch, sonst würde dein Server ja garnicht kompilieren, sorry!!
Wäre vielleicht doch hilfreich, wenn du genauere Fehlermeldungen deines Clients/Servers schreiben würdest!Geändert von TwoFaze (28.11.05 um 15:47 Uhr)
-
Hallo,
Zitat von Silvercreast
hast du deinen Server auch vorher am localhost:110 gestartet?
Gruß
RedWing"I'm not deaf, I'm ignoring you"
----
-
28.11.05 15:59 #8
- Registriert seit
- Aug 2005
- Ort
- Solingen ( NRW )
- Beiträge
- 152
@ TwoFaze mein Server und mein Client geben keine Fehlermeldung raus
@ RedWing ich habe meinem Server nur den Port 110 gegeben, wie im CodeCode :1
[COLOR=Blue][B]Wer [/B][I]Wie[/I] [B]Was[/B] [I]Wieso [/I][B]Weshalb[/B] [I]Warum [/I][B]Wer nicht fragt bleibt dumm [/B][/COLOR]
-
ja hast du ihn auch gestartet?Das war meine Frage nur um sicher zu gehen
Zitat von Silvercreast
das der Fehler auch wirklich im Code liegt
Gruß
RedWing"I'm not deaf, I'm ignoring you"
----
-
28.11.05 16:03 #10
- Registriert seit
- Aug 2005
- Ort
- Solingen ( NRW )
- Beiträge
- 152
Ja Ja ich habe den Server gestartet und dann den Client
Code :1
[COLOR=Blue][B]Wer [/B][I]Wie[/I] [B]Was[/B] [I]Wieso [/I][B]Weshalb[/B] [I]Warum [/I][B]Wer nicht fragt bleibt dumm [/B][/COLOR]
-
Und wie schauts aus, kommt der Server auch ohne Fehlermeldungen
bis zum accept? Eventuell ist der Port 110 bzw Socket auch schon durch
einen anderen Dienst belegt, dann sollte eigentlich ein Fehler
beim bind() entstehen...
Gruß
RedWing"I'm not deaf, I'm ignoring you"
----
-
28.11.05 16:15 #12
- Registriert seit
- Aug 2005
- Ort
- Solingen ( NRW )
- Beiträge
- 152
Wie kann ich das den Kontrollieren? Ich kann per Debug nicht das accept überprüfen.
Code :1
[COLOR=Blue][B]Wer [/B][I]Wie[/I] [B]Was[/B] [I]Wieso [/I][B]Weshalb[/B] [I]Warum [/I][B]Wer nicht fragt bleibt dumm [/B][/COLOR]
-
Soweit ich das deinem Server oben entnehmen kann, macht er Fehlerausgaben bei "bind" und "connect", da sollte dann eigentlich was stehen!
Wenn du dich wirklich für den Fehler interessierst, dann spiel ein bischen mit deiner Anwendung rum und experimentiere. Vielleicht könntest du auch, um ein lauffähiges Beispiel zu bekommen und auch ein bischen Hilfestellung zu haben bei
www.c-worker.ch
vorbeischauen, da ist eigentlich auch alles für den Einstieg schritt-für-schritt erklärt.
Kannst ja dann auch hier berichten an was es lag..
PS.: Bin auch Azubi Fachinformatiker AE
-
28.11.05 16:25 #14
- Registriert seit
- Aug 2005
- Ort
- Solingen ( NRW )
- Beiträge
- 152
Natürlich interessiert es mich voran das liegt, ich bin momentan auch nen bischen Ratlos were mich mal durch die Seiten durchackern
Code :1
[COLOR=Blue][B]Wer [/B][I]Wie[/I] [B]Was[/B] [I]Wieso [/I][B]Weshalb[/B] [I]Warum [/I][B]Wer nicht fragt bleibt dumm [/B][/COLOR]
-
Hallo versuchs mal bitte so bei deinem Client:
anstatt:
so:Code :1
addr.sin_addr.s_addr = inet_addr(serverip);
Code :1
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
Ich vermute das die ip bei deinem Bsp nicht richtig extrahiert wird...
Gruß
RedWing"I'm not deaf, I'm ignoring you"
----
Ähnliche Themen
-
Socket Programmierung
Von Maxii im Forum C/C++Antworten: 1Letzter Beitrag: 13.05.09, 12:57 -
Socket Programmierung
Von thomasbe im Forum JavaAntworten: 4Letzter Beitrag: 20.07.08, 18:02 -
Socket Programmierung mit C++
Von Shooter07 im Forum Borland CBuilder und VCLAntworten: 2Letzter Beitrag: 24.04.08, 14:49 -
Socket Programmierung
Von marie20 im Forum C/C++Antworten: 4Letzter Beitrag: 27.04.05, 10:46 -
Socket-Programmierung
Von lindin im Forum C/C++Antworten: 4Letzter Beitrag: 06.09.04, 14:54





Zitieren
Login






