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?


Anmelden zum Antworten