Tạo ứng dụng đơn giản “hello world”

Một phần của tài liệu LẬP TRÌNH MẠNG NGHỀ: QUẢN TRỊ MẠNG MÁY TÍNH (Trang 44 - 46)

Mục tiêu: vận dụng các cổng, chế độ làm việc của Socket để lập trình các

ứng dụng giao tiếp trên hệ thống mạng.

Mô hình Client-Server sử dụng Socket ở chế độ không nối kết (UDP)

2.1. Viết dưới dạng đơn giản UDP client

Yêu cầu: Viết chương trình phía client cho phép gởi một thông điệp đến

máy chủ bất kỳ.

Hướng dẫn: Mở Visual Studio .NET, tạo một Project mới, chọn Visual C# projects, và sau đó chọn Windows Application. Đặt tên là “UDP Client” và nhấn OK.

Thiết kế form cho chương trình như hình sau. Đặt tên cho nút button là button1 và hộp văn bản textbox là tbHost.

Hình 3.4 Giao diện UDP Client

Kích chọn nút button và gõ đoạn lệnh sau:

private void button1_Click(object sender, System.EventArgs e) {

UdpClient udpClient = new UdpClient(); udpClient.Connect(tbHost.Text, 8080);

Byte[] sendBytes = Encoding.ASCII.GetBytes("Hello World?");

udpClient.Send(sendBytes, sendBytes.Length); }

Cần bổ sung các namespace sau vào trong chương trình using System.Net;

using System.Net.Sockets; using System.Text;

using System.IO;

Nhấn F5 để thực thi chương trình, ta có kết quả như hình 3.5

2.2. Viết dưới dạng đơn giản UDP server

Yêu cầu: Viết chương trình phía server để nhận và hiển thị thông điệp được gởi tới từ chương trình UDP client ở trên.

Hướng dẫn: Tạo một C# project với giao diện như sau

Hình 3.5 Giao diện UDP Server Đặt tên cho list box là lbConnections.

Ở đây, chúng ta bắt đầu xây dựng hai luồng (thread) cho chương trình.

Đầu tiên là luồng quản lý dữ liệu được gởi đến, mã nguồn chương trình

như sau:

public void serverThread() {

UdpClient udpClient = new UdpClient(8080); while(true)

{

IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any,0);

Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);

string returnData = Encoding.ASCII.GetString(receiveBytes); lbConnections.Items.Add(RemoteIpEndPoint.Address.ToString (adsbygoogle = window.adsbygoogle || []).push({});

() + ":" + returnData.ToString() );

} }

Viết code cho sự kiện Form load

private void Form1_Load(object sender, System.EventArgs e){ Thread thdUDPServer = new

Thread(new

ThreadStart(serverThread)); thdUDPServer.Start(); }

Thực thi chương trình: Để kiểm tra kết quả của chương trình, cài đặt hai chương trình UDP client và UDP server trên hai máy khác nhau có kết

nối mạng. Trên chương trình UDP client nhập vào địa chỉ IP của server. Sau

khi bấm nút gởi, kết quả sẽ được hiển thị trên chương trình UDP server.

Một phần của tài liệu LẬP TRÌNH MẠNG NGHỀ: QUẢN TRỊ MẠNG MÁY TÍNH (Trang 44 - 46)