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 13680 Free
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