Gửi Và Nhận DataTable Qua Socket Trong C# | Võ Văn Hải's Blog
Có thể bạn quan tâm
Phương thức này dùng để DeSerialize một mảng byte thành đối tượng bất kỳ
public object DeserializeData(byte[] theByteArray) { MemoryStream ms = new MemoryStream(theByteArray); BinaryFormatter bf1 = new BinaryFormatter(); ms.Position = 0; return bf1.Deserialize(ms); }Tạo Solution
Bạn tạo 1 solution có tên chẳng hạn là SocketInCSharp. 1. Đầu tiên là ở server: Add 1project, đặt tên là SocketServer, thêm 1 form và trên form thêm 1 nút có tên Start. Kết quả như sau: 
Source code như sau:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.IO; namespace SocketServer { public partial class Form1 : Form { private Socket sock = null; public Form1() { InitializeComponent(); } private void startButton_Click(object sender, EventArgs e) { startButton.Text = "In process..."; Application.DoEvents(); IPEndPoint ipEnd = new IPEndPoint(IPAddress.Any, 5656); sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP); sock.Bind(ipEnd); sock.Listen(100); Socket clientSock = sock.Accept(); DataTable table = getdata(); clientSock.Send(SerializeData(table)); sock.Close(); clientSock.Close(); startButton.Text = "&Start Server"; Application.DoEvents(); } public byte[] SerializeData(Object o) { MemoryStream ms = new MemoryStream(); BinaryFormatter bf1 = new BinaryFormatter(); bf1.Serialize(ms, o); return ms.ToArray(); } /*Ở đây tôi tạo 1 bảng dữ liệu thử. Bạn có thể kết nối csdl và load dữ liệu lên*/ private DataTable getdata() { DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32))); dt.Columns.Add(new DataColumn("StringValue", typeof(string))); dt.Columns.Add(new DataColumn("DateTimeValue", typeof(DateTime))); dt.Columns.Add(new DataColumn("BooleanValue", typeof(bool))); for (int i = 1; i <= 1000; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = "Item " + i.ToString(); dr[2] = DateTime.Now; dr[3] = (i % 2 != 0) ? true : false; dt.Rows.Add(dr); } return dt; } } }Biên dịch chương trình sau đó mở thư mục bin/Debug để chạy tập tin SocketServer.exe. Nhấn nút Start Server để bắt đầu chạy server. Mỗi lần gửi xong phải nhấn nút start một lần. Bạn có thể dùng Threading để cho nó chạy liên tục, tuy nhiên bạn sẽ phải xem đến phương thức SendAsync của socket.
Từ khóa » Sử Dung Tcp Socket Tạo ứng Dụng Client-server để Gởi Nhận Dữ Liệu C#
-
Kỹ Thuật Lập Trình Tcp Socket Với C# | Tự Học ICT
-
C# – Lập Trình Socket Giao Tiếp TCP Client/server
-
C# – Lập Trình Socket Giao Tiếp TCP Client/server - Hanoi Aptech
-
Lập Trình C# Socket TCP Client/server Trên Visual Stdio
-
Lập Trình Socket, Giao Tiếp Client Và Server Bằng Ngôn Ngữ C (với ...
-
Xây Dựng ứng Dụng Client – Server Hướng Kết Nối (TCP Socket)
-
Lập Trình Socket Giao Tiếp TCP Client/server (với C#) - Thế Giới 360
-
Hướng Dẫn Gởi File Qua Giao Thức TCP (lập Trình Socket) Bằng Csharp
-
Xây Dựng ứng Dụng Client-Server Với Socket Trong Java | TopDev
-
[PDF] CHAT TRÊN CLIENT – SERVER VỚI NGÔN NGỮ C#
-
[DOC] Xây Dựng Chương Trình Chat Room Sử Dụng Tcp Socket
-
Lập Trình Socket Cơ Bản Với TCP/IP Trong Java - CodeLearn
-
Gửi Và Nhận Dữ Liệu đơn Giản Với TcpClient Và TcpListener. [Archive]
-
C# – Lập Trình Socket Giao Tiếp TCP Client/server - Hệ điều Hành