• Thứ Sáu, 09/09/2005 10:24 (GMT+7)

    Câu hỏi :
    Tôi muốn viết một chương trình dùng ngôn ngữ VB.Net để đăng nhập vào máy server (cho phép đăng nhập bằng telnet), và lấy dữ liệu trả về để lọc và hiển thị lên màn hình. Xin hỏi:
     - Làm thế nào để chương trình VB.Net có thể đăng nhập vào máy server từ một máy trong mạng?
     - Làm thế nào để nhận và xử lý dữ liệu trả về?


    Trả lời :
    Hiện nay, hầu hết các máy tính đều hỗ trợ mạng internet (hay còn gọi là mạng TCP/IP). Trên mạng này, bạn có thể lập trình ứng dụng mạng trên 1 trong 2 cấp chính yếu của Internet, đó là cấp IP và cấp TCP. Trong 2 cấp này, các phần mềm chủ yếu dùng TCP, cấp cho phép giao tiếp trực tiếp giữa 2 phần mềm (trong khi cấp IP chỉ cho phép giao tiếp thông tin giữa 2 máy tính nên khó dùng hơn).

    Hầu hết các phần mềm mạng đều dùng mô hình client-server để giao tiếp với nhau. Trong mô hình này, 1 phần mềm mạng gồm 2 thành phần chức năng: client chuyên dùng dịch vụ, còn server chuyên cung cấp dịch vụ cho client. Để 2 thành phần client-server của phần mềm mạng giao tiếp thông tin một cách trật tự hầu đảm bảo thành công, các phần mềm mạng đều dùng giao thức hỏi đáp (request-reply). Giao thức hỏi đáp qui định 1 tập hợp gồm n thông báo yêu cầu (request) mà client có thể gửi đến server để nhờ vả, còn server khi nhận 1 thông báo request, nó sẽ phân tích và giải quyết dùm rồi gửi kết quả về client bằng 1 thông báo trả lời (reply). Mỗi server được nhận dạng bằng 1 địa chỉ TCP gồm 2 thành phần: địa chỉ IP của máy mà server chạy và cổng (port) làm việc của server đó. Nếu biết được địa chỉ TCP của server và giao thức làm việc của nó, bất kỳ phần mềm client nào cũng có thể giao tiếp với server đó thông qua một tập các hàm trong thư viện socket sẵn có của hệ thống (trên Windows, người ta gọi thư viện socket này là Winsock). Thí dụ hệ thống web dùng giao thức HTTP và server web dùng port 80 để giao tiếp với client, e-mail dùng giao thức SMTP, POP3, IMAP và server e-mail dùng port 25, hệ thống FTP dùng giao thức FTP và server FTP dùng port 21...

    Tóm lại, nếu bạn muốn viết 1 phần mềm client để giao tiếp với 1 server nào đó, trước hết bạn phải biết địa chỉ TCP của server đó (có thể để người dùng nhập vào), biết giao thức mà server dùng. Khi đã nắm vững giao thức, bạn sẽ biết rõ định dạng thông tin trong từng reply mà server gửi về cho bạn mỗi khi bạn yêu cầu nó thực hiện 1 dịch vụ nào đó. Nhờ đó, bạn sẽ rút trích các thông tin cần dùng cho ứng dụng (đây là hoạt động xử lý chuỗi). Còn để lập trình giao tiếp được với server, bạn cần nắm vững thư viện socket (hay thư viện các class cao cấp hỗ trợ socket, nếu bạn đang lập trình hướng đối tượng). Thông tin chi tiết về các hàm socket hay các class hỗ trợ socket của môi trường .Net được trình bày trong CD MSDN 2003 hay cao hơn.
    Chuyên mục: Mạng - truyền thông