2,7 lập trình socket với UDPChúng tôi đã học được ở trước phần đó khi hai quá trình giao tiếp qua TCP, từ cácquan điểm của các quá trình đó là như nếu có một đường ống giữa hai quá trình. Ống này vẫn còn trongĐặt cho đến khi một trong hai quá trình đóng nó. Khi một trong các quá trình muốn gửi một số byte cho cácquá trình khác, nó chỉ đơn giản là chèn các byte vào đường ống. Quá trình gửi không phải đính kèm mộtđiểm đến địa chỉ để các byte bởi vì các đường ống một cách logic được kết nối đến đích. Hơn nữa,Các đường ống cung cấp một đáng tin cậy byte stream kênh--trình tự byte được nhận bởi người nhậnquá trình là chính xác các byte chuỗi người gửi chèn vào đường ống. UDP cũng cho phép hai (hay nhiều) các tiến trình đang chạy trên các máy chủ khác nhau để giao tiếp. Tuy nhiên, UDPkhác với TCP trong nhiều cách cơ bản. Trước tiên, UDP là một dịch vụ connectionless--không phải là mộtgiai đoạn ban đầu bắt tay trong thời gian đó một đường ống được thiết lập giữa hai quá trình. Bởi vì UDP không có một đường ống, khi một quá trình muốn gửi một lô byte cho một tiến trình, gửi quá trình phải loại trừ các đính kèm theo quy trình điểm đến địa chỉ lô byte. Và điều này phảilàm cho mỗi lô byte gửi quá trình gửi. Vì vậy UDP là tương tự với một dịch vụ taxi--mỗithời gian một nhóm người nhận được trong một xe taxi, nhóm đã thông báo cho các tài xế của địa chỉ đích. Nhưvới TCP, địa chỉ đích là một tuple bao gồm địa chỉ IP của máy chủ lưu trữ địa điểm và cácsố hiệu cổng của quá trình đích. Chúng tôi sẽ giới thiệu đến hàng loạt thông tin byte cùng với IPsố điểm đến địa chỉ và port như các "gói". Sau khi đã tạo ra một gói dữ liệu, quá trình gửi đẩy các gói vào mạng thông qua một ổ cắm.Tiếp tục tương tự xe taxi của chúng tôi, ở phía bên kia của các ổ cắm, đó là một xe taxi đợi gói tin.Taxi sau đó ổ đĩa các gói theo hướng địa chỉ đích của gói tin. Tuy nhiên, xe taxikhông đảm bảo rằng nó cuối cùng sẽ nhận được datagram đến đích cuối cùng của nó; xe taxi có thể phá vỡxuống. Trong các điều khoản khác, UDP cung cấp một dịch vụ vận tải không đáng tin cậy đến quá trình giao tiếp của nó - nólàm cho không có bảo đảm một datagram sẽ đạt đến đích cuối cùng của nó. Trong phần này, chúng tôi sẽ minh họa cho UDP máy khách-máy chủ lập trình bởi redeveloping cùng một ứng dụngtrong phần trước, nhưng thời gian này qua UDP. Chúng ta cũng sẽ thấy rằng cácJava code cho UDP là khác nhau từ mã TCP trong nhiều cách khác nhau quan trọng. Đặc biệt, chúng ta sẽ thấy rằng có là (i) không ban đầu của bạnbắt tay giữa hai quá trình, và do đó không cần cho một ổ cắm chào đón, (ii) không có dòngđược gắn vào ổ cắm, (iii) việc gửi máy tạo ra "gói" bằng cách gắn các điểm đến IPđịa chỉ và port số cho mỗi lô byte nó sẽ gửi, và (iv) trong quá trình tiếp nhận phải làm sáng tỏ đểnhận được gói dữ liệu để có được các gói thông tin byte. Nhớ lại một lần nữa chúng tôi ứng dụng đơn giản: 1. một khách hàng đọc một dòng từ đầu vào tiêu chuẩn (bàn phím) và gửi các dòng ra ổ cắm của nó để cácHệ phục vụ.2 máy chủ. đọc một dòng từ ổ cắm của nó.3. máy chủ chuyển dòng thành chữ hoa.
đang được dịch, vui lòng đợi..
