CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 453

453

Chương 11: Lập trình mạng

Trong ví dụ này, bảng từ vựng được định nghĩa sẵn chỉ là cơ bản. Bạn có thể thêm nhiều hằng
hơn nữa tùy thuộc vào kiểu ứng dụng. Ví dụ, trong một ứng dụng truyền file, client có thể gửi
một thông điệp để yêu cầu một file. Sau đó, server có thể đáp lại bằng một acknowledgment
(ACK) và trả về các chi tiết của file (kích thước file chẳng hạn). Những hằng này sẽ được biên
dịch thành một Class Library Assembly riêng, và cả client và server đều phải tham chiếu đến
assembly này.
Đoạn mã dưới đây là một khuôn dạng cho một TCP-server cơ bản. Nó lắng nghe trên một port
cố định, nhận kết nối đến đầu tiên và rồi đợi client yêu cầu ngừng kết nối. Tại thời điểm này,
server có thể gọi phương thức

TcpListener.AcceptTcpClient

lần nữa để đợi client kế tiếp.

Nhưng thay vào đó, nó sẽ đóng lại.

using System;

using System.Net;

using System.Net.Sockets;

using System.IO;

using SharedComponent;

public class TcpServerTest {

private static void Main() {

// Tạo listener trên port 8000.

TcpListener listener =

new TcpListener(IPAddress.Parse("127.0.0.1"), 8000);

Console.WriteLine("About to initialize port.");

listener.Start();

Console.WriteLine("Listening for a connection...");

try {

// Đợi yêu cầu kết nối, và trả về TcpClient.

TcpClient client = listener.AcceptTcpClient();

Console.WriteLine("Connection accepted.");

// Thu lấy network stream.

NetworkStream stream = client.GetStream();

// Tạo BinaryWriter để ghi ra stream.

BinaryWriter w = new BinaryWriter(stream);

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.