bind() 10048
-
Hallo,
ich habe mir Server und Client gebaut. Problem: ich wollte das auch der Client den gleichen Port(50000) bekommt, und keinen zufälligen. Deswegen habe ich auch den Socket beim Client gebunden.
Ich kriege jedoch immer Fehler 10048:
"Only one usage of each socket address (protocol/network address/port) is normally permitted."Client
//-----------Socket anlegen----------------// SOCKET client; client = socket(AF_INET,SOCK_DGRAM,IPPROTO_IP); //---------Addressinformationen anlegen----// SOCKADDR_IN ziel; ziel.sin_addr.s_addr = inet_addr("127.0.0.1"); ziel.sin_family = AF_INET; ziel.sin_port = htons(50000); //-----------Binden des Portes mit IP-------// int nret = bind(client,(SOCKADDR *)&ziel,sizeof(ziel)); if(nret == SOCKET_ERROR){ cout << "Client: Binden abgebrochen, Fehler " << GetLastError() << endl; closesocket(client); WSACleanup(); getchar(); return 1; }
Server
//-----------Socket anlegen----------------// SOCKET server; server = socket(AF_INET,SOCK_DGRAM,IPPROTO_IP); //---------Addressinformationen anlegen----// SOCKADDR_IN ziel; ziel.sin_addr.s_addr = inet_addr("127.0.0.1"); ziel.sin_family = AF_INET; ziel.sin_port = htons(50000); //--------Addresse an Port binden-----------// cout << "Binde Socket..." << endl; int fehler = bind(server,(SOCKADDR *)&ziel,sizeof(ziel)); if(fehler == SOCKET_ERROR){ cout << "Binden abgebrochen, Fehler " << GetLastError() << endl; closesocket(server); WSACleanup(); getchar(); return 1; }
-
gast11 schrieb:
Problem: ich wollte das auch der Client den gleichen Port(50000) bekommt, und keinen zufälligen.
Du hast das Problem erkannt.
-
aber wenn ich den Port ändere, zb. auf 50001. Dann kriege ich keine Verbindung. Wie kann der Client auch auf einem änlichen Port laufen?
-
<a href= schrieb:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms737550">Binding to a specific port number other than port 0 is discouraged for client applications, since there is a danger of conflicting with another socket already using that port number on the local computer.
-
gast11 schrieb:
Wie kann der Client auch auf einem änlichen Port laufen?
Warum willst du überhaupt, dass der Client einen bestimmten Port benutzt? Was versuchst du damit zu erreichen?