2.7 Socket Programming with UDPWe learned in the previous section that dịch - 2.7 Socket Programming with UDPWe learned in the previous section that Việt làm thế nào để nói

2.7 Socket Programming with UDPWe l

2.7 Socket Programming with UDP
We learned in the previous section that when two processes communicate over TCP, from the
perspective of the processes it is as if there is a pipe between the two processes. This pipe remains in
place until one of the two processes closes it. When one of the processes wants to send some bytes to the
other process, it simply inserts the bytes into the pipe. The sending process does not have to attach a
destination address to the bytes because the pipe is logically connected to the destination. Furthermore,
the pipe provides a reliably byte stream channel -- the sequence of bytes received by the receiving
process is exactly the sequence bytes that the sender inserted into the pipe.
UDP also allows two (or more) processes running on different hosts to communicate. However, UDP
differs from TCP in many fundamental ways. First, UDP is a connectionless service -- there isn't an
initial handshaking phase during which a pipe is established between the two processes. Because UDP
doesn't have a pipe, when a process wants to send a batch of bytes to another process, the sending
process must exclude attach the destination process's address to the batch of bytes. And this must be
done for each batch of bytes the sending process sends. Thus UDP is similar to a taxi service -- each
time a group of people get in a taxi, the group has to inform the driver of the destination address. As
with TCP, the destination address is a tuple consisting of the IP address of the destination host and the
port number of the destination process. We shall refer to the batch of information bytes along with the IP
destination address and port number as the the "packet".
After having created a packet, the sending process pushes the packet into the network through a socket.
Continuing with our taxi analogy, at the other side of the socket, there is a taxi waiting for the packet.
The taxi then drives the packet in the direction of the packet's destination address. However, the taxi
does not guarantee that it will eventually get the datagram to its ultimate destination; the taxi could break
down. In other terms, UDP provides an unreliable transport service to its communication processes -- it
makes no guarantees that a datagram will reach its ultimate destination.
In this section we will illustrate UDP client-server programming by redeveloping the same application
of the previous section, but this time over UDP. We shall also see that the
Java code for UDP is different
from the TCP code in many important ways. In particular, we shall see that there is (i) no initial
handshaking between the two processes, and therefore no need for a welcoming socket, (ii) no streams
are attached to the sockets, (iii) the sending hosts creates "packets" by attaching the IP destination
address and port number to each batch of bytes it sends, and (iv) the receiving process must unravel to
received packet to obtain the packet's information bytes. Recall once again our simple application:
1. A client reads a line from its standard input (keyboard) and sends the line out its socket to the
server.
2. The server reads a line from its socket.
3. The server converts the line to uppercase.
3252/5000
Từ: Anh
Sang: Việt
Kết quả (Việt) 1: [Sao chép]
Sao chép!
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..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
2.7 Lập trình Socket với UDP
Chúng tôi biết ở phần trước rằng khi hai quá trình giao tiếp qua TCP, từ
quan điểm của các quá trình đó là, nếu có một đường ống giữa hai quá trình. Ống này vẫn còn ở
chỗ 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 để các
quá trình khác, nó chỉ đơn giản là chèn các byte vào ống. Quá trình gửi không phải đính kèm một
địa chỉ đích để các byte vì đường ống được cách logic kết nối đến đích. Hơn nữa,
các đường ống cung cấp một kênh dòng đáng tin cậy byte - chuỗi các byte nhận được nhận
quá trình chính là chuỗi byte mà người gửi chèn vào ống.
UDP cũng cho phép hai (hoặc nhiều hơn) các quy trình đang chạy trên máy khác nhau để giao tiếp. Tuy nhiên, UDP
khác với TCP trong nhiều cách cơ bản. Đầu tiên, UDP là một dịch vụ phi kết nối - có không phải là một
giai đoạn bắt tay ban đầu trong đó 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 tiến trình muốn gửi một loạt các byte đến quá trình khác, việc gửi
quá trình phải loại trừ đính kèm địa chỉ quá trình đích đến hàng loạt các byte. Và điều này phải được
thực hiện đối với từng lô byte quá trình gửi sẽ gửi. Như vậy UDP là tương tự như một dịch vụ taxi - mỗi
lần một nhóm người nhận được trong một xe taxi, nhóm có để thông báo cho người lái xe của địa chỉ đích. Như
với TCP, địa chỉ đích là một bộ bao gồm địa chỉ IP của các máy chủ đích và
số cổng của quá trình đích. Chúng tôi sẽ đề cập đến hàng loạt các thông tin byte cùng với các IP
địa chỉ đích và số cổng là các "gói".
Sau khi đã tạo một gói tin, quá trình gửi đẩy gói tin vào mạng thông qua một ổ cắm.
Tiếp tục với tương tự xe taxi của chúng tôi, ở phía bên kia của socket, có một xe taxi chờ đợi cho các gói tin.
Chiếc taxi sau đó đẩy các gói tin theo hướng địa chỉ đích của gói tin. Tuy nhiên, các xe taxi
không đảm bảo rằng nó cuối cùng sẽ nhận được các gói tin đến đích cuối cùng của nó; xe taxi có thể phá vỡ
xuống. Nói cách khác, UDP cung cấp một dịch vụ vận tải đáng tin cậy để các quá trình giao tiếp của nó - nó
không đảm bảo rằng một gói tin sẽ đạt được điểm đến cuối cùng của nó.
Trong phần này chúng tôi sẽ minh họa cho lập trình client-server UDP tái xây dựng cùng một ứng dụng
của phần trước, nhưng lần này qua UDP. Chúng ta cũng sẽ thấy rằng các
mã Java cho UDP là khác nhau
từ các mã TCP trong nhiều cách quan trọng. Đặc biệt, chúng ta sẽ thấy rằng có (i) không có ban đầu
bắt tay giữa hai quá trình, và do đó không cần thiết cho một ổ cắm chào đón, (ii) không có dòng
được gắn vào ổ cắm, (iii) các host mail tạo "gói" bằng cách gắn các điểm đến IP
địa chỉ và số cổng cho mỗi lô byte nó gửi đi, và (iv) các quá trình tiếp nhận phải làm sáng tỏ để
nhận được gói tin để có được byte thông tin của gói tin. Nhớ lại một lần nữa ứng dụng đơn giản của chúng tôi:
1. Một khách hàng đọc một dòng từ đầu vào chuẩn (bàn phím) và gửi các dòng ra khỏi ổ cắm của nó đến các
máy chủ.
2. Các máy chủ đọc một dòng từ socket của nó.
3. Các máy chủ chuyển đổi dòng chữ hoa.
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2025 I Love Translation. All reserved.

E-mail: ilovetranslation@live.com