Thông tin tài liệu:
Bài giảng Lập trình mạng - Chương 7 mô tả những công việc liên quan đến UDP Socket. Chương này giúp người học hiểu được những kiến thức tổng quan về UDP, hiểu được lập trình với Socket UDP, nắm bắt được sự tương tác giữa socket sender/reciever,... Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình mạng: Chương 7 - ĐH Công nghệ Đồng NaiUDP Socket 1 UDP Dịch vụ không kết nối Không cung cấp: thiết lập kết nối, tin cậy, điều khiển dòng, thời gian, … Tại sao sử dụng UDP? 2 UDP Nhược điểm Các thông điệp được nhận theo thứ tự ngẫu nhiên. Không có gì đảm bảo là các gói tin sẽ đến đích Ưu điểm: UDP là một giao thức có tốc độ truyền tin nhanh Truyền tin unicast, broadcast và multicast. Kiểu truyền Thông điệp unicast sẽ gửi từ nút này tới nút khác. Truyền tin broadcast nghĩa là một thông điệp có thể được gửi tới tất cả các nút trong một mạng. Multicast cho phép các thông điệp được truyền tới một nhóm các nút được lựa chọn. Lập trình với Socket UDPUDP: không kết nối giữa client và server Không bắt tay Phía gởi sẽ gắn địa chỉ IP và Port của đích vào mỗi đoạn dữ liệu. OS sẽ đính kèm IP và Port của máy gửi vào mỗi đoạn. Server loại bỏ phần IP và port của máy gửi và nhận đoạn dữ liệu. 4 Tương tác giữa socket sender/reciever Reciever SenderTạo socket, Tạo socket,port= x.serverSocket = clientSocket =DatagramSocket() DatagramSocket() Tạo datagram với IP và port=x; gửi datagram thông quaĐọc datagram từ clientSocketserverSocketViết hồi đáp sử dụng Đọc datagram từserverSocket clientSocketdựa vào số hiệu cổngVà địa chỉ client. đóng clientSocket 5 Ví dụ: Java client (UDP) keyboard monitor inFromUser input stream Client Input: nhận packet Process (dùng UDP để process nhận “byte stream”)Output: gửi packet(dùng UDP để gửi receivePacket“byte stream”) sendPacket UDP UDP packet packet clientUDP clientSocket socket UDP socket to network from network 6 Ví dụ: Java client (UDP) import java.io.*; import java.net.*; class UDPClient { public static void main(String args[]) throws Exception { Tạo Luồng nhập BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));Tạo socket client DatagramSocket clientSocket = new DatagramSocket(); Dịch tên miềnhostname sang InetAddress IPAddress = InetAddress.getByName(“localhost); địa chỉ IP byte[] sendData = new byte[1024]; sử dụng DNS byte[] receiveData = new byte[1024]; String sentence = inFromUser.readLine(); sendData = sentence.getBytes(); 7 Ví dụ: Java client UDPTạo datagram vớidữ liệu, độ dài dữ DatagramPacket sendPacket =liệu, địa chỉ IP, số new DatagramPacket(sendData, sendData.length, IPAddress, 9876); hiệu cổng Gửi datagram clientSocket.send(sendPacket); Tới server DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); Đọc datagram ...