Sockets bei jeder Sprache gleich?
-
Ich will ein kleines ChatProgramm schreiben.
Jetzt will ich den Client in VB6 schreiben und den Server in C,wurde dies aber gehen?
Da ich ma wo gelesen habe das dies nicht mit verschiedenen Programmiersprachen geht.Mfg
CHB
-
CHB schrieb:
Ich will ein kleines ChatProgramm schreiben.
Jetzt will ich den Client in VB6 schreiben und den Server in C,wurde dies aber gehen?
Da ich ma wo gelesen habe das dies nicht mit verschiedenen Programmiersprachen geht.Mfg
CHBJa das geht.
-
Des heißt ich muss nur das gleiche Protokoll nemmen.
-
CHB schrieb:
Des heißt ich muss nur das gleiche Protokoll nemmen.
Ganz genau! Denn im Endeffekt wird in jedem Fall auf die Betriebssystemroutinen zugegriffen; mehr doer weniger direkt, mal über eine Library, mal über nen anderen Wrapper!
-
In dem Zusammenhang kannst du dir den Socket wie ein File vorstellen.
Auch wenn die Funktionen u.U. unterschiedlich heissen würden, es wären immernoch ein Haufen Bytes die hintereinander liegen.
Wenn ein Programm die Bytes so schreibt dass ein anderes Programm damit was anfangen kann, dann funktioniert es. Ganz egal in welcher Sprache die beiden Programme verfasst wurden oder auf welchem Betriebssystem sie laufen.p.S.: du kannst ja auch mit IE unter Windows auf einen HTTP Server zugreifen der in Java geschrieben ist und unter Solaris läuft, oder?

-
Wenn du in einem Socket schreibt macht du sinng. nichts anderes als dem BS sagen das es eine Socker herstellen soll und schreibst die Daten in einem Buffer des BS. Dieses kümmert sich dann um den Rest. Auch ankommende Daten werden durch das BS in einen Buffer geschrieben wo das Programm sie nur abholt.
-
Und welche IP brauche ich die Locale oder die Online IP???
-
Du brauchst immer die IP des Servers, egal auf welcher Seite.
Beim Server musst du die IP des Servers für bind() verwenden, beim Client musst du die IP des Servers für connect() verwenden.
-
Für bind() braucht man nicht unbedingt die IP, wenn man keine eingibt wird auf allen interfaces gelauscht.
-
Ah, OK.