Nachdem ich mich die letzten Tage quer durchs Web gelesen habe, bin ich mal richtig verwirrt, weil es eine Vielzahl von Möglichkeiten gibt und ich nicht weiss, welche nehmen.
Gross-/Kleinschreibung scheint völlig egal zu sein, bzw. es existiert beides, sockaddr_in und SOCKADDR_IN, aber mein Kleinhirn sagt mir, irgendeinen Unterschied wird es geben.
Initialisieren ist auch optional, bzw. gibt es in mindestens 3 Varianten.
Bei MSDN findet sich
Anderswo gibt es auch
oder auch
Nu frage ich mal ganz blöd: Was ist denn der Unterschied, ob ich (wie bei MSDN) "struct" davor schreibe und es nicht initialisiere, oder statt struct davor lieber = {0} dahinter schreibe, oder memset verwende, und egal was der Unterschied ist, welche Variante wäre die Richtige, wenn ich unter Windows einen Listen-Socket für eine Server-Anwendung schreibe?
Bisher mache ich das wie folgt, aber ob das aus der Liste der Möglichkeiten die Beste ist?
Gross-/Kleinschreibung scheint völlig egal zu sein, bzw. es existiert beides, sockaddr_in und SOCKADDR_IN, aber mein Kleinhirn sagt mir, irgendeinen Unterschied wird es geben.
Initialisieren ist auch optional, bzw. gibt es in mindestens 3 Varianten.
Bei MSDN findet sich
Code:
struct sockaddr_in saServer;
Anderswo gibt es auch
Code:
SOCKADDR_IN addr;
memset(&addr,0,sizeof(SOCKADDR_IN));
oder auch
Code:
SOCKADDR_IN addr = {0};
Nu frage ich mal ganz blöd: Was ist denn der Unterschied, ob ich (wie bei MSDN) "struct" davor schreibe und es nicht initialisiere, oder statt struct davor lieber = {0} dahinter schreibe, oder memset verwende, und egal was der Unterschied ist, welche Variante wäre die Richtige, wenn ich unter Windows einen Listen-Socket für eine Server-Anwendung schreibe?
Bisher mache ich das wie folgt, aber ob das aus der Liste der Möglichkeiten die Beste ist?
Code:
SOCKET s = socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addr;
memset(&addr,0,sizeof(SOCKADDR_IN));
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = INADDR_ANY;
addr.sin_port = htons(ServerPort);
bind(s,(sockaddr*)&addr,sizeof(SOCKADDR_IN));
// listen() usw.