C & Internet
-
ich schreib die opcodes einfach direkt
Du sprichst die Netzwerkkarte einfach direkt an und teilst ihr mit was sie tun
soll indem du ihr die OPCodes direkt schickst und nicht über das Betriebssystem.
-
SirLant schrieb:
ich schreib die opcodes einfach direkt
Du sprichst die Netzwerkkarte einfach direkt an und teilst ihr mit was sie tun
soll indem du ihr die OPCodes direkt schickst und nicht über das Betriebssystem.Ich sprach von opcodes der CPU und heutzutage kann man nicht mehr direkt mit der Hardware kommunizieren! Zumindest nicht unter Windows NT/2K/XP und Linux.
-
Euch ist fad, oder?
Warum sollte ich Assembler brauchen um mit Sockets zu arbeiten?
Was die Funktionen accept(), recv(),... intern machen, ist doch egal. Ob die mit Assembler oder Java implementiert sind, ist doch egal.Sicher: im Grunde arbeitet alles mit Opcodes - aber dann kann ich ja auf jede Frage mit: "ohne Opcodes geht da garnix" antworten.
Das geht doch total an der Frage vorbei...
-
Shade Of Mine schrieb:
Euch ist fad, oder?
Warum sollte ich Assembler brauchen um mit Sockets zu arbeiten?
Was die Funktionen accept(), recv(),... intern machen, ist doch egal. Ob die mit Assembler oder Java implementiert sind, ist doch egal.Sicher: im Grunde arbeitet alles mit Opcodes - aber dann kann ich ja auf jede Frage mit: "ohne Opcodes geht da garnix" antworten.
Das geht doch total an der Frage vorbei...
Er wollte wissen, obs mit ANSI C geht, und ich hab ihm gesagt: "Nein, aber ...", weil mir langweilig ist und ich finde, dass manche Fragen einfach so überflüssig sind, wenn der Fragende ein wenig Eigeninitiative besäße und Google anschmeißen würde.
-
tobidope schrieb:
Er wollte wissen, obs mit ANSI C geht, und ich hab ihm gesagt: "Nein, aber ...", weil mir langweilig ist und ich finde, dass manche Fragen einfach so überflüssig sind, wenn der Fragende ein wenig Eigeninitiative besäße und Google anschmeißen würde.
mhm, naja. wenigstens erfindest kreative ausreden warum du trollst...
-
Shade Of Mine schrieb:
tobidope schrieb:
Er wollte wissen, obs mit ANSI C geht, und ich hab ihm gesagt: "Nein, aber ...", weil mir langweilig ist und ich finde, dass manche Fragen einfach so überflüssig sind, wenn der Fragende ein wenig Eigeninitiative besäße und Google anschmeißen würde.
mhm, naja. wenigstens erfindest kreative ausreden warum du trollst...
Und was soll daran troll-haft sein?
-
weil die äusserung man bräuche assembler käse ist und nur solche unsinnigen diskussionen wie oben zur folge hat.
-
japro schrieb:
weil die äusserung man bräuche assembler käse ist und nur solche unsinnigen diskussionen wie oben zur folge hat.
tobidope schrieb:
Nein, kann man nicht. Windows und Linux sind in C geschrieben und können Daten "übers internet schicken". Dies wirst du gemerkt haben, als du gerade wahrscheinlich mit einem PC unter einem dieser Betriebssysteme diese Nachricht ans Forum geschickt hast. Aber leider kann ANSI C das nicht ohne das Betriebsystem und einige Zeilen Assembler. Also ab nach WinAPI oder Linux/Unix.
Das habe ich geantwortet, und das stimmt so. Wenn man nicht lesen kann und meine Ironie nicht verstehen will, dann ist das nicht meine Schuld!
Gruß Tobias
-
Aber leider kann ANSI C das nicht ohne das Betriebsystem und einige Zeilen Assembler
das ist so schlicht falsch. ich kann problemlos unter jedem vernünftigen OS sockets/internet benutzen ohne zu wissen wie man assembler überhaupt schreibt.
das ist so wie wenn du vorschlagen würdest selber ein auto zu bauen, um zum supermarkt zu fahren.
-
Aber leider kann ANSI C das nicht ohne das Betriebsystem und einige Zeilen Assembler. Also ab nach WinAPI oder Linux/Unix.
C + einige Zeilen Assembler == Betriebssystem if(strcmp(poster.os, "Windows") == 0) goto WinAPI; else goto Linux/Unix;
Hast du das jetzt verstanden, oder soll ich dir ein Bild malen?
Gruß Tobias
-
*HändeüberdenKopfschlag*
Zum Programmieren, dass man Daten übers Internet schicken kann, kann man C verwenden. (Der Fragende hat übrigens nicht nach ANSI-C gefragt, auch wenn er im ANSI-C-Forum ist.)
Richtig ist auch, dass man betriebssystemspezifische Funktionen dazu braucht (socket.h, wobei diese in Linux/Unix wie auch in Windows zur Verfügung steht).
Dass man dann auch noch Assembler dazu braucht ist falsch (selbsterprobt).
Dass hinter den meisten Funktionen Assembler steckt ist wieder richtig. Deswegen aber zu sagen, dass man Assembler dazu braucht ist doch etwas sehr kleinkrämerisch. Wenn dann müsste man schon richtig ins Detail gehen und sagen, dass man jeden einzelnen kleinen Stromstoß programmieren muss (mal ganz stark übertrieben).
-
AJ schrieb:
*HändeüberdenKopfschlag*
Zum Programmieren, dass man Daten übers Internet schicken kann, kann man C verwenden. (Der Fragende hat übrigens nicht nach ANSI-C gefragt, auch wenn er im ANSI-C-Forum ist.)
Kann man mit AnsiC daten übers internet schicken und wenn ja wie?
Sicher, dass er das nicht gefragt hat? Und sicher dass ich ihn nicht an andere Foren verwiesen hat? SIcher das du gelesen hast, worüber du zu schreiben meinst?
-
tobidope schrieb:
Aber leider kann ANSI C das nicht ohne das Betriebsystem und einige Zeilen Assembler. Also ab nach WinAPI oder Linux/Unix.
C + einige Zeilen Assembler == Betriebssystem if(strcmp(poster.os, "Windows") == 0) goto WinAPI; else goto Linux/Unix;
Hast du das jetzt verstanden, oder soll ich dir ein Bild malen?
Gruß Tobias
sorry aber:
*g* LOL
1. zeig mir das executable format das auf allen os gestartet wird.
2. woher willst du wissen das der assembler für die entsprechende architektur korrekt ist?
3. zeig mir dem assembler code mit dem man unterscheiden kann welches os benutzt wird.
-
@EinNiemand:
Sorry, dass dies hier so ausartet.Stell deine Frage bitte nochmal im passenden Forum.
Also je nachdem welches Betriebssystem du benutzt im Linux, WinAPI oder Rund Um die Programmierung Forum.
Danke!
@tobidope:
bitte sieh doch ein, dass du im prinzip zwar recht hast, es aber absolut sinnlos ist. Denn jede(!) Funktion verlangt irgendwo einmal Maschinencode.Insofern hast du natürlich recht, allerdings kann man so auf jede Frage antworten - und das ist nun wirklich nicht sinn der sache.
Stell dir mal das vor:
Q: Ich will eine Zeichenkette in eine Andere kopieren
A: Da musst du dir mit Assembler helfen oder Syscalls machen - das hängt aber vom verwendeten OS/Platform abDie Antwort ist richtig, aber der Fragesteller kann nichts damit anfangen.
ein einfaches: strcpy() hätte ja auch genügt. Auch wenn strcpy() intern vermutlich mit Assembler implementiert ist...
-
@Shade of Mine: Das was du gerade schon sagtest, nämlich in ein anderes Forum zu gehen, habe ich bereits in meinem ersten Post gesagt. Und Zeichenketten kopieren funtioniert mit ANSI-C. "Übers Internet schicken" von Daten aber nicht. Nichts anderes habe ich gesagt. Und wenn man nicht lesen kann, dann sollte man sich schon überlegen, was man sagt. Oder bin ich hier im falschen Forum? Ging es hier nicht um ANSI-C?
@japro: Lerne lesen! Ernsthatft, ich habe nichts von Executables gesagt. Ich habe gesagt, dass man mit "C + Assembler" ein Betriebssystem hat. Wobei Assembler natürlich plattformabhängig ist. Gerade deshalb entstand doch die Sprache C! Abstraktion von der Plattform!
Frohe Weihnacht und mehr Leseverständnis für Deutschland.
-
@tripode
Tschuldige. Das ANSI hatte ich wohl überlesen (was ja einem Normalsterblichen auch mal passieren kann).
-
tobidope schrieb:
@Shade of Mine: Das was du gerade schon sagtest, nämlich in ein anderes Forum zu gehen, habe ich bereits in meinem ersten Post gesagt.
Ja, aber ich wollte mich zusätzlich ja auch noch dafür entschuldigen, dass der Thread hier den bach runter geht
Und Zeichenketten kopieren funtioniert mit ANSI-C.
Nein. Denn irgendwo wird Maschinencode erzeugt, meisstens ist strcpy sowieso in ASM implementiert.
"Übers Internet schicken" von Daten aber nicht.
Oh doch!
puts("Hello World\n"); kann Daten übers Internet senden.
Denn stdout muss nur auf einen 'Socket stream' zeigen.Und wenn man nicht lesen kann, dann sollte man sich schon überlegen, was man sagt.
Oh, ich kann lesen...
Oder bin ich hier im falschen Forum? Ging es hier nicht um ANSI-C?
Und jetzt erklär mir mal, was Assembler mit ANSI C zu tun hat?
Nichts!Du bist abgeschweift, nicht wir.
Frohe Weihnacht und mehr Leseverständnis für Deutschland.
Und n bisschen mehr Einsicht für tobidope.
-
Nun wenn man ANSI-C opaque betrachtet, dann kann man damit einiges machen. Anderes nicht. strcpy kann man damit auf jeden Fall ohne Hilfe eines plattformabhängigen Assembler impementieren.
char *strcpy(char *dest, const char *src) { char *temp = dest; while(*temp++ = *src++) ; return dest; }
Alles was mit E/A zu tun hat, wird von ANSI-C trotzdem gekapselt, aber nur Datei E/A. Da der Ursprungsposter aber von ANSI-C sprach, habe ich ihm gesagt, dass das in ANSI-C nicht funktioniert. Also ab nach Unix/Linux, WinAPI. Abgeschweift wäre ich, wenn ich ihm jeweilige API-Funktionen genannt hätte.
-
Das ist doch eigentlich jetzt alles gar nicht wichtig.
Der Threadersteller wollte wissen, ob man mit ANSI-C (wobei ich immer noch vermute, dass er einfach C meint, also !C++) Daten übers Internet versenden kann und er wollte wissen wie.
Nur weil das jetzt nichts mit ANSI-C zu tun hat, kann man ihm ja trotzdem mal einen Tipp geben und genau das mache ich jetzt auch.
@EinNiemand
Such mal in einer Suchmaschine nach socket.h, das hilft dir sicher weiter.
-
tobidope schrieb:
TriPhoenix schrieb:
Dann sag aber bitte korrekt, dass das ANSI C nicht ohne das Betriebssystem oder einige Zeilen Assembler kann. Im übrigen ist das dann strenggenommen auch nicht mehr ANSI C...
Was genau möchtest du mir sagen? Was ist strenggenommen kein ANSI C und ...?
Dass man nicht Betriebssystem UND Assembler braucht, sondern nur eines von beiden. Und wenn man eines von beiden dazunimmt, hat man sowieso kein ANSI C mehr.