Bài giảng Lập trình mạng - Chương 5: NET Socket - Trương Đình Huy

Chương 5. NET Socket  
Trương Đình Huy  
Chương 5. NET Soket  
• 5.1. Giới thiệu  
5.2. TCP Server  
5.3. TCP Client  
5.4. UDP Server/Client  
2
Chương 5.1 Giới thiệu  
• .NET Framework là bộ thư viện chạy trên đa kiến trúc của  
Microsoft  
• Hai namespace hỗ trợ lập trình mạng: System.Net và  
System.Net.Sockets  
• Một vài lớp chính  
– IPAddress: Lưu trữ và quản lý địa chỉ IP.  
– IPEndPoint: Lưu trữ thông tin về một địa chỉ socket, tương tự như  
SOCKADDR_IN. Bao gồm IPAddress và cổng.  
– DNS: Hỗ trợ các thao tác phân giải tên miền  
– Socket: Xử lý các thao tác trên socket  
3
Chương 5.1 Giới thiệu  
• IPAddress: Đóng gói một địa chỉ IP  
– Khởi tạo: IPAddress.Parse(“192.168.1.1”);  
– Lấy dạng chuỗi: IPAddress.ToString();  
– Các địa chỉ đặc biệt: IPAddress.Any, IPAddress.Broadcast,  
IPAddress.Loopback  
• IPEndPoint: Đóng gói một địa chỉ socket  
– Khởi tạo: IPEndPoint(IPAddress, Int32)  
– Lấy dạng chuỗi: IPEndPoint.ToString();  
• DNS: thực hiện phân giải tên miền  
– Lấy địa chỉ IP:  
IPAddress[]  
– Lấy thông tin về host:  
IPHostEntry DNS.GetHostEntry(“www.google.com”);  
DNS.GetHostAddress(“www.google.com”);  
4
Chương 5.2 TCP Server  
• Trình tự tạo TCP Server  
1.Tạo một Socket  
2.Liên kết với một IPEndPoint cục bộ  
3.Lắng nghe kết nối  
4.Chấp nhận kết nối  
5.Gửi nhận dữ liệu theo giao thức đã thiết kế  
6.Đóng kết nối sau khi đã hoàn thành và trở lại trạng thái lắng nghe  
chờ kết nối mới.  
5
Chương 5.2 TCP Server  
• Thí dụ  
// Thiết lập địa chỉ của server  
IPEndPoint ie = new IPEndPoint(IPAddress.Any, 8888);  
// Tạo socket server  
Socket server = new Socket(AddressFamily.InterNetwork,  
SocketType.Stream, ProtocolType.Tcp);  
int ret;  
// Bind và Listen  
server.Bind(ie);  
server.Listen(10);  
Console.WriteLine(“Doi ket noi tu client...");  
// Chấp nhận kết nối mới  
Socket client = server.Accept();  
Console.WriteLine("Chap nhan ket noi tu:{0}",  
client.RemoteEndPoint.ToString());  
string s = “Hello Net Socket";  
byte[] data = new byte[1024];  
data = Encoding.ASCII.GetBytes(s);  
client.Send(data, data.Length, SocketFlags.None);  
6
Chương 5.2 TCP Server  
• Thí dụ (tiếp)  
while (true)  
{
data = new byte[1024];  
ret = client.Receive(data);  
if (ret == 0) break;  
Console.WriteLine("Du lieu tu client:{0}",  
Encoding.ASCII.GetString(data,0,ret));  
}
client.Shutdown(SocketShutdown.Both);  
client.Close();  
7
Chương 5.3 TCP Client  
• Trình tự  
– Xác định địa chỉ của Server  
– Tạo Socket  
– Kết nối đến Server  
– Gửi nhận dữ liệu theo giao thức đã thiết kế  
– Đóng Socket  
8
Chương 5.3 TCP Client  
• Thí dụ  
// Thiết lập địa chỉ  
IPEndPoint iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888);  
// Tạo socket client  
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream,  
ProtocolType.Tcp);  
// Kết nối đến server  
client.Connect(iep);  
byte[] data = new byte[1024];  
int recv = client.Receive(data); // Nhận câu chào từ server  
string s = Encoding.ASCII.GetString(data, 0, recv); Console.WriteLine("Server  
gui:{0}", s);  
string input;  
while (true) {  
input = Console.ReadLine();  
//Chuyen input thanh mang byte gui len cho server  
data = Encoding.ASCII.GetBytes(input);  
client.Send(data, data.Length, SocketFlags.None);  
9
Chương 5.3 TCP Client  
• Thí dụ (tiếp)  
if (input.ToUpper().Equals("QUIT")) break;  
}
client.Disconnect(true);  
client.Close();  
}
10  
Chương 5.4 UDP Server/Client  
• Trình tự UDP Server  
– Tạo một Socket  
– Liên kết với một IPEndPoint cục bộ qua hàm Bind (UDP Server)  
hoặc xác định địa chỉ Server để gửi dữ liệu (UDP Client)  
– Gửi nhận dữ liệu theo giao thức đã thiết kế bằng hàm  
ReceiveFrom/SendTo  
– Đóng Socket  
11  
pdf 11 trang Thùy Anh 12/05/2022 2420
Bạn đang xem tài liệu "Bài giảng Lập trình mạng - Chương 5: NET Socket - Trương Đình Huy", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_lap_trinh_mang_chuong_5_net_socket_truong_dinh_huy.pdf