Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[c#] Data versturen via Socket?

Pagina: 1
Acties:
  • 143 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

Ik had een vraagje inzake Socketgebruik in C#. Ik heb een socketverbinding opgezet tussen de applicatie en een server. En ik kan ook data versturen zoals:

C#:
1
 sock.Send(Encoding.ASCII.GetBytes("data")); 


Dit werkt allemaal goed. Maar nu zou ik graag integerwaarden versturen via een socket, maar ik kan maar niet vinden hoe dit moet.

Stel nu, ik wil het cijfer 10 versturen, als ik dit via bovenstaande manier doe, zal deze ' 1 ' en ' 0 ' versturen, 2 karakters dus. Maar nu zou ik graag de decimale waarde van ' 10 ' versturen ( een New Line Feed dus .. )

Hoe kan ik dit juist doen, ik vind daar geen manier voor? Ik heb al gegoogled, maar kom iedere keer op bovenstaande voorbeeld uit ..

Alvast bedankt,
Alexander

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Wat je zult moeten doen is een integer converteren naar bytes. Hier zijn verschillende mogenlijkheden voor. Bijvoorbeeld handmatig met binary operators

C#:
1
2
3
4
5
byte[] bytes = new byte[4];
bytes[0] = (byte)(myInt >> 24);
bytes[1] = (byte)((myInt >> 16) & 0xFF);
bytes[2] = (byte)((myInt >> 8) & 0xFF);
bytes[3] = (byte)(myInt & 0xFF);


Of gebruik maken van de BitConverter class.

Wat jij echter wilt doen is het char '\n' versturen. Dit is geen Int32. Als je gewoon de ascii representatie wilt versturen kan je het gewoon zo doen.

C#:
1
sock.Send(Encoding.ASCII.GetBytes("data\n"));

[ Voor 30% gewijzigd door Woy op 21-08-2007 09:03 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • whoami
  • Registratie: December 2000
  • Laatst online: 13:22
Kan je niets doen met de BitConverter class om die integer naar een array van bytes om te zetten ?

edit:
Wat rwb zegt, * whoami moet sneller zijn ...


Als je idd een newline wilt versturen, dan vraag ik me af waarom je de ASCII representatie van een newline wilt doorsturen ipv gewoon het escape char te gebruiken of bebruik te maken van Environment.NEwLine ?

[ Voor 57% gewijzigd door whoami op 21-08-2007 09:06 ]

https://fgheysels.github.io/


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
whoami schreef op dinsdag 21 augustus 2007 @ 09:04:
Als je idd een newline wilt versturen, dan vraag ik me af waarom je de ASCII representatie van een newline wilt doorsturen ipv gewoon het escape char te gebruiken of bebruik te maken van Environment.NEwLine ?
Ja je kan natuurlijk wel gebruik maken van de Environment.NewLine, maar de environment van de pc waar je het heen stuurt kan natuurlijk net zo goed anders zijn. Bij communicatie tussen verschillende computers zou ik daar dan ook geen gebruik van maken maar gewoon goed documenteren en afspreken welke char sequence je gebruikt bij newline's.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”