Socketproblem mit C#/C
-
Hi!
Ich habe im Moment folgendes Probelm. Ich habe vor eine Client/Server-Anwendung für TCP/IP zu schreiben.
Der Server ist bereits implementiert und zwar in C (das geht auch nicht anders, da er auf einem Microcontroller läuft).
Jetzt möchte ich eine Client-Anwendung für den PC schreiben und zwar in C#. Dabei ist mir folgendes Problem begegnet:
Ich kann einen Socket erstellen und eine Verbindung zum Server herstellen. Um Daten zu senden wollte ich Socket.Send() nutzen, aber damit kann ich nur Byte[] senden. D.h. ich erstelle einen String und wandle ihn mit Encoding.ASCII.GetBytes() in Byte um. Wenn ich ihn jetzt allerdings mit Socket.Send() sende, muss ich am Server wieder in String umwandeln. In C# wäre das kein Problem, da gibt es wieder eine entsprechende Funktion.
Aber mit C habe ich keine Ahnung wie das gehen soll. Gibt es dafür eine Funktion in C? Bzw. gibt es vielleicht eine andere Funktion als Socket.Send() in C#, so dass ich einen String direkt versenden kann?Ich hoffe, dass das nicht allzu verwirrend war;-)
Irgendwie ein bisschen schwer auszudrücken.
Bin froh über jede Hilfe.Gruß
uepae
-
hast du dir eig. nen tutorial über C# Socketprogrammierung angesehen?
klar kannst du strings senden...
-
auch wenn du in c# einen string sendest, kommen uebers netz beim server nur bytes an. that's life - that's tcp/ip
aber die werte der bytes entsprechen den ascii codes der zeichen, die im string standen.
das heisst, du packst die ganzen bytes, die du empfaengst in ein char-array und terminierst das dingen mit \0
schon hast du einen c-string. (pass halt nur auf, dass du ASCII codes mit deinem client sendest und kein utf oder so)