Tôi muốn viết chương trình (Winform) gửi nhận file qua Internet. Tôi đã viết được chương trình gửi nhận file qua mạng LAN (sử dụng Socket), nhưng không biết cách xác định địa chỉ IP, cổng của máy khi gửi nhận qua Internet.
 

" />
  • Thứ Hai, 19/04/2010 09:09 (GMT+7)

    Viết chương trình gửi nhận file qua internet

    Câu hỏi :

    Tôi muốn viết chương trình (Winform) gửi nhận file qua Internet. Tôi đã viết được chương trình gửi nhận file qua mạng LAN (sử dụng Socket), nhưng không biết cách xác định địa chỉ IP, cổng của máy khi gửi nhận qua Internet.
     



    Trả lời :

    Thường ở cấp ứng dụng, hiện nay tuyệt đại đa số các ứng dụng mạng đều được viết trên thư viện socket của môi trường cấp thấp (Windows, Linux...). Ở cấp ứng dụng, mỗi ứng dụng mạng thường gồm 2 module chức năng (1 client + 1 server), chúng biết nhau nhờ địa chỉ TCP của đối tác. Mỗi module phải có địa chỉ TCP gồm 2 thành phần: port giao tiếp + địa chỉ IP của máy mà module ứng dụng đang chạy. Module server (thí dụ Web server) sẽ chạy trước và liên tục trên 1 máy nào đó (thường gọi là máy server). Khi có nhu cầu sử dụng, người dùng sẽ kích hoạt module client (thí dụ Internet Explorer của Microsoft), người dùng phải cung cấp (nhập vào) cho trình client biết địa chỉ của server cần giao tiếp để nó biết kết hối với server (thí dụ khi ta nhập địa chỉ http://www.vnn.vn thì trình client sẽ biết địa chỉ server cần liên hệ là vnn.vn, nó sẽ gọi hệ thống đổi địa chỉ gợi nhớ sang dạng IP, còn port của web server đã được qui định chuẩn là 80). Khi server được kết nối từ client nào, nó sẽ biết địa chỉ của client đó. Tóm lại việc xác định địa chỉ (TCP) của trình server là do người dùng cung cấp, chứ không phải ứng dụng tự đặt ra. Chương trình mạng sau khi được viết, nếu nó chạy tốt trên mạng cục bộ thì về nguyên tắc nó sẽ chạy tốt trên Internet và ngược lại. Nói cách khác, người lập trình không quan tâm đến việc ứng dụng mà mình viết sẽ chạy trên mạng Internet hay mạng cục bộ.
     

    Chuyên mục: Lập trình