Jetzt unterscheiden wir nicht die Sprache, die Klassenbibliothek, auf die von der Sprache und dem zugrunde liegenden Betriebssystem zugegriffen werden kann. Hier ist meine Erklärung
C, C++, C#, Java - Sind nur die Sprachen hat keine spezifische Unterstützung in Bezug auf die Netzwerkprogrammierung.
Java Klassenbibliothek, .Net Framework, C++ Standardbibliothek - darunter denke ich C# & Java bietet einige Klassen für die Netzwerkprogrammierung. C++ - Standardbibliothek bietet keine Netzwerkprogrammierklassen (nur Iostreams für Datei, stdinput & Strings sind verfügbar). Die BOOST-Bibliothek für C++ bietet jedoch Klassen für die Netzwerkprogrammierung. Mir sind die anderen Bibliotheken nicht bekannt.
OS - Das Betriebssystem erzeugt eine Basis-API (meistens in C), die von den obigen Klassenbibliotheken verwendet wird. Im Falle von Windows ist es die Winsock API (WSA) und im Falle von Unix ist es die BSD Socket API. Ich denke, Windows unterstützt auch zu einem gewissen Grad die BSD API, so dass die Lernkurve weniger ist. Aber wie @EnabrenTane sagte, es ist mehr als das.
Ich habe nie über WPA gehört, meinst du WSA? IIRC das sind nicht wirklich verschiedene Sockets - Sie können sich mit einem Socket verbinden und würden keinen Unterschied sehen, wenn es sich um einen WSA oder BSD Socket handelt. WSA APIs sind nur bequeme Helfer, z. um Windows-Nachrichten zu erhalten, wenn ein Socket-Ereignis auftritt. – Niki
oops. WSA, ja. Windows-Nachrichten und ein paar mehr Unterschiede - überprüfen Sie den DwFlags-Parameter von http://msdn.microsoft.com/en-us/library/ms742212%28v=vs.85%29.aspx. Sie erhalten die Flagge für http://msdn.microsoft.com/en-us/library/ms740506%28v=vs.85%29.aspx – kellogs
Ok dann ..... die "rohe" Socket-API, über die jeder spricht Ist das nicht der Berkley? Btw Ich war hauptsächlich mit Unix beschäftigt ..... wie heißt ihre "Raw Socket" API. Wie auch immer, ich nehme an, Syntax ist für alle ziemlich ähnlich und hat sich nicht viel verändert? Alt es scheint, BSD wurde von POSIX für Unix jetzt korrekt ersetzt? –