port trên máy tính và lập trình mạng
Một phép loại suy nhỏ trước một định nghĩa chính thức luôn tốt để hiểu rõ hơn và dễ dàng hơn. Đồng ý? Vì vậy, giả sử rằng tôi nướng...
Một phép loại suy nhỏ trước một định nghĩa chính thức luôn tốt để hiểu rõ hơn và dễ dàng hơn. Đồng ý?
Vì vậy, giả sử rằng tôi nướng một chiếc bánh cho bạn tôi và gửi em trai của tôi đến nhà cô ấy. Đối với điều này, đầu tiên anh ta mở cửa nhà tôi, đi ra và sau đó đi đường theo địa chỉ nhà cô ấy. Một lần nữa, cửa nhà cô ấy phải được mở ra trước khi chiếc bánh có thể đến được với cô ấy và cô ấy có thể nếm thử.
Nhưng chờ đã, bên ngoài ngôi nhà, anh ta tìm thấy hai cửa chính (một cửa dẫn đến khu người thuê của cô), một màu đỏ và một màu xanh lam. Vì vậy, anh ta phải gõ cửa nào để tiếp cận cô ấy trực tiếp? Làm thế nào để xác định đúng cửa? Nếu địa chỉ được đưa ra cũng ghi rõ màu cửa hoặc số, sẽ dễ dàng tìm thấy cô ấy hơn nhiều mà không có thể đụng phải những người thuê nhà của cô ấy, phải không?
Bây giờ, chúng ta đến với kịch bản Mạng.
Ở đây, các ngôi nhà tương tự như máy tính . Tôi và bạn tôi tương tự như các quy trình (ứng dụng / chương trình) đang chạy trên máy tính. Chiếc bánh là thông điệp hoặc tệp tin cần được chuyển đi. Em trai tôi là kết nối TCP hoặc UDP giữa hai máy tính sử dụng mạng. Các cửa tương tự như ổ cắm là giao diện giữa ứng dụng và lớp truyền tải trong máy chủ. Điều quan trọng là phải gõ đúng cửa (ổ cắm) để truyền tải đúng thông điệp.
Địa chỉ IP đã được sử dụng để truy cập máy tính đích. Nhưng bây giờ, làm thế nào để xác định đúng ổ cắm để đạt được vận trình định mệnh? Vì vậy, các ổ cắm được gán các số đặc biệt gọi là “ Số cổng ”, giúp xác định chính xác các quy trình người gửi và người nhận (ứng dụng / chương trình). Vì vậy, cùng với địa chỉ IP, số cổng cũng được cung cấp và cả hai số này hoạt động cùng nhau để xác định vị trí máy tính đích và sau đó là quá trình định mệnh.
Nếu chúng ta nhìn vào cấu trúc phân đoạn TCP và UDP, chúng ta có thể dễ dàng tìm thấy các trường “số cổng nguồn” và “số cổng đích” ngay trên đầu cấu trúc. Số cổng được liên kết với các kết nối TCP / IP và chủ yếu trợ giúp trong việc ghép kênh và phân kênh dữ liệu.
Đối với một định nghĩa chính thức, chúng ta có thể nói,
“Số cổng là địa chỉ logic của mỗi ứng dụng hoặc quy trình giúp xác định quy trình người gửi và người nhận thông báo.”
Mỗi số cổng là một số 16 bit nằm trong khoảng từ 0 đến 65535.
Số cổng nổi tiếng : - Số cổng được dành riêng cho một số giao thức ứng dụng phổ biến.
Ví dụ- HTTP có số cổng 80. FTP có số cổng 21.
Số cổng tạm thời: - Số cổng được chỉ định tạm thời trong thời gian sử dụng.
Hy vọng nó giúp.
Lập trình mạng là gì?
Có bao giờ bạn thắc mắc những chương trình bạn viết ra hoạt động, giao tiếp thế nào trong mạng máy tính chưa? Hay dễ hiểu là làm cách nào để server của bạn có thể nói chuyện được với client?
Lập trình mạng là một trong những nhiệm vụ căn bản để phát triển các ứng dụng. Một chương trình mạng được viết ra để các chương trình trên các máy tính khác nhau có thể truyền tin với nhau một cách hiệu quả và an toàn cho dù chúng được cài đặt trên mạng LAN, WAN hay mạng toàn cầu Internet, đây là điều căn bản đối với sự thành công của nhiều hệ thống.
Hãy cùng mình nghịc thử để viết 1 chương trình socket giao tiếp client và server đơn giản nhất!
Giới thiệu về Socket
SocKet là một giao diện lập trình (API – Application Program Interface) ứng dụng mạng thông qua giao diện này có thể lập trình điều khiển việc truyền thông giữa 2 máy sử dụng các giao thức mức thấp như TCP,UDP… , Có thể tưởng tượng nó như một thiết bị truyền thông 2 chiều tương tự như tệp tin, chúng ta gửi/nhận dữ liệu giữa 2 máy, tương tự như việc đọc ghi trên tệp tin.
Với mô hình khách chủ TCP
Bây giờ chúng ta sẽ bắt tay tìm hiểu cách làm và thực hành
Viết chương trình phía server
Các bước để tạo lên 1 chương trình phía server:
Tạo socket với hàm socket (int family, int type, int protocol) các tham số trong đó theo thứ tự là họ giao thức, kiểu socket, kiểu giao thức.Gán địa chỉ cho socket bind (int sockfd, const struct sockaddr *sockaddr, socklen_t addrlen) các tham số lần lượt là mô tả socket vừa tạo, con trỏ chỏ đến địa chỉ socket, độ lớn địa chỉChỉ định socket lắng nghe kết nối listen (int sockfd, int backlog) trong đó sockfd là mô tả socket vừa tạo, backlog là số lượng tối đa các kết nối đang chờChờ/chấp nhận kết nối accept (int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen) lần lượt có các tham số là mô tả socket vừa tạo, con trỏ tới cấu trúc địa chỉ socket của tiến trình kết nối đến, độ lớn cấu trúc địa chỉThiết lập kết nối với máy chủ TCP connect (int sockfd, const struct sockaddr *servaddr, socklen_t addrlen)Viết chương trình phía client
Các bước để tạo lên 1 chương trình phía client
Tạo socket với hàm socket (int family, int type, int protocol) các tham số trong đó theo thứ tự là họ giao thức, kiểu socket, kiểu giao thức.Connect tới địa chỉ server với hàm connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)Đọc dữ liệu từ server và ghi vào biến buffer read( sock , buffer, 1024)Sau đây mình sẽ đi vào thực hành với 1 requirement đơn giản là:
Mô tả chương trình:
(Nguồn hình ảnh: Google Hình ảnh)
Khoa học - Công nghệ
/khoa-hoc-cong-nghe
Bài viết nổi bật khác
- Hot nhất
- Mới nhất