:: การย้ายข้อมูลผ่านทางเครือข่าย ::
ในส่วนนี้จะแสดงเทคนิคในการย้าย ข้อมูลไบนารี ชนิดต่างๆผ่านทางเครือข่าย เมื่อเราทำการโปรแกรมเกียวกับการสือสารส่งสำคัญที่จำเป็นต้องเข้าใจคือข้อมูลไบนารีนั้นเก็บอยู่บนอุปกรณ์อย่างไรการส่งข้อมูลผ่านเครือข่ายอย่างไร
การย้ายข้อมูลไบนารี
เมื่อเราใช้ใช้ TCP หรือ UDP ในการส่งไบนารีระหว่างอุปกรณ์ 2 ตัวผ่านทางเครือข่ายเป็นเรื่องที่ซับซ้อน มันมีความเป็นไปได้ที่จะเกิดความผิดพลาดได้จากหลายสาเหตุ
บางทีปัญหาใหญ่ในการย้ายข้อมูลชนิดไบนารีคือการทำให้มันแสดงผลได้อย่างไรเพราะตัวแปรไบนารีของเครืองแต่ละเครื่องจะมีรูปแบบเป็นของตัวเองเราจึงต้องเข้าใจข้อมูลเหล่านั้นเป็นอุปกรณ์ๆไป
ข้อมูลไบนารีต้องแปลงให้เป็น byte array จึงจะสามารถส่งได้ โดยใช้ send() หรือ SendTo() method ใน c# อาจจะใช้ BitConverter class
การส่งข้อมูลชนิดไบนารี
methord ที่ชื่อว่า BitConverter และ GetBytes() จะแปลงข้อมูลไบนารีมาตราฐานเป็น byte array
ตัวอย่างเช่น
int test = 1990;
byte[] data = BitConverter.GetBytes(test);
newsock.Send(data,0,data.Length);
คำเตือน ในการส่งข้อมูล ไบนารีไม่สามารถใช้ StreamWriter และ StreamReader ได้เพราะมันใช้ได้ดีกับสตริงแต่มันจะเกิดความเสียหายกับข้อมูลไบนารี สิ่งสำคัญอีกอย่างเมื่อเราสร้าง byte array เราต้องทำการจองพื้นที่ให้เพียงพอกับข้อมูลไบนารีของเราไม่เช่นนั้นเมื่อส่งข้อมูลไปแล้วจะไม่สามารถใช้ข้อมูลดังกล่าวได้
การรับข้อมูลไบนารี
โปรแกรมต้องทำการเปิดรับข้อมูลไบนารีแล้วทำการแปลงข้อมูลกลับเป็นข้อมูลแบบดังเดิมที่ส่งมา
การแปลงข้อมูลทุก method จะมีรูปแบบเหมือนกัน ดังนี้ :
ฺ BitConverter.ToInt16(byte[] data,int offset)
- พารามิเตอร์ตัวแรกคือ byte array ของข้อมูล
- พารามิเตอร์ตัวที่ 2 คือ จุดที่จะเริ่มแปลงข้อมูล
double total = 0.0;
byte[] data = newsock.Receive(ref sender);
double test = BitConverter.ToDouble(data,0);
total+=test;
ไม่มีความคิดเห็น:
แสดงความคิดเห็น