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?


Log in to reply