Lập trình Socket: Gửi mảng từ client sang server

Em đang làm trên Winform, mọi người cho em hỏi:
Em muốn gởi 1 mảng kiểu int từ client qua server thì làm sao ạ,
Em đã thử cách chuyển nó sang string bằng cách FuntionName.Tostring() nhưng không thành công

Trước hết, em nên tìm hiểu cách thức server nhận mảng đó như thế nào ?
Kế tiếp , em tìm hiểu xem với cách thức server mà em chọn, em phải làm gì để server hiểu đó là thứ em cần gửi.
Sau đó, em nên thử trước với một 1 ký tự, tiếp nữa là chuỗi, sau cùng là mảng.

1 Like

em thử với ký tự, chuỗi đều đã thành công, chi khi gởi với mảng kiểu int thì bên server nó nhận nhưng khi xuất ra bên server thì nó lại xuất ra những ký tự lạ

Bạn conver đối tượng là mảng đó sang một mảng byte xong gửi nhé. Bên server thì ngược lại

class ChuyenDoiDuLieu
    {
        public byte[] ChuyenDoiTuongSangMangByte(object duLieu)
        {
            MemoryStream ms = new MemoryStream();
            BinaryFormatter bf1 = new BinaryFormatter();
            bf1.Serialize(ms, duLieu);
            return ms.ToArray();     
        }

        public object ChuyenMangByteThanhDoiTuong(byte[] mangByte)
        {
            MemoryStream ms = new MemoryStream(mangByte);
            BinaryFormatter bf1 = new BinaryFormatter();
            ms.Position = 0;
            return bf1.Deserialize(ms);
        }
    }

Nếu bạn gửi được string thì convert mảng đó thành string, các số phân tách bởi dấu '|' chẳng hạn. Bên phía nhận thì dùng phương thức Split('|') để tách thành mảng.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?