1. Trang chủ
  2. » Công Nghệ Thông Tin

Hướng dẫn lập trình UDP socket giao tiếp client server

6 1,1K 10

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 578,93 KB

Nội dung

LẬP TRÌNH ỨNG DỤNG UDP SOCKET TRÊN JAVA Mục tiêu: Sau bài thực hành này, sinh viên có thể: - Hiểu được mô hình hoạt động chung của ứng dụng mạng trên giao thức UDP.. - Các phần dưới đâ

Trang 1

LẬP TRÌNH ỨNG DỤNG UDP SOCKET TRÊN JAVA

Mục tiêu:

Sau bài thực hành này, sinh viên có thể:

- Hiểu được mô hình hoạt động chung của ứng dụng mạng trên giao thức UDP

- Lập trình ứng dụng mạng với UDP socket trên ngôn ngữ Java

Nội dung chính:

- Mô hình hoạt động giao thức UDP

- Một số hàm cơ bản của lớp DatagramSocket

- Minh họa ứng dụng mạng đơn giản sử dụng DatagramSocket

Trang 2

1 Mô hình hoạt động giao thức UDP (User Datagram Protocol)

- Khi xây dựng một ứng dụng mạng, ta cần thực hiện các bước sau:

o Xác định kiến trúc mạng: Client-Server hay Peer-to-Peer

o Giao thức được sử dụng ở tần Transport: TCP, UDP

o Các port sử dụng ở Client và Server

o Giao thức tần ứng dụng khi trao đổi dữ liệu

o Lập trình

- Các phần dưới đây sẽ trình bày các bước cơ bản để xây dựng một ứng dụng mạng theo kiến trúc Client-Server sử dụng giao thức UDP

- Có hai giao thức chính được dùng để truyền tải dữ liệu trong TCP/IP là TCP và UDP

- Với ứng dụng mạng được thiết kế theo mô hình của giao thức UDP thuần túy, bên

gởi không có cơ chế để đảm bảo tín tin cậy của dữ liệu được truyền tải, nghĩa

là dữ liệu được truyền có thể bị mất, sai nội dung hoặc thứ tự nội dung nhận được

so với nội dung cần gởi sẽ bị đảo lộn

- Tuy nhiên, UDP được dùng trong các ứng dụng yêu cầu thời gian thực như truyền tải Video, Audio,… vì khả năng truyền tải nhanh của nó

- Sơ đồ tương tác giữa Client và Server theo giao thức UDP như mô hình sau:

Trang 3

Create Socket

Create Socket

Bind

Close Close

Send to

Receive from Send to

Receive from

Tạo socket lắng nghe Tạo socket để giao tiếp

Kết buộc vào địa chỉ IP

và port

Gởi dữ liệu đến client tham số cần truyền vào

là địa chỉ IP và port mà client đang sử dụng

Gởi dữ liệu đến server

tham số cần truyền vào

là địa chỉ IP và port mà

server đang lắng nghe

Nhận dữ liệu từ Client

Nhận dữ liệu từ Server

Đóng kết nối

2 Lập trình UDP socket trên Java với lớp DatagramSocket:

- DatagramSocket là lớp hỗ trợ lập trình ứng dụng UDP socket trên Java, phần

này sẽ giới thiệu một số phương thức cơ bản để có thể xây dựng được một ứng dụng UDP socket

a Tạo DatagramSocket:

Public DatagramSocket()

Throws SocketException

o Khởi tạo UDP socket và kết buộc nó vào một trong những port còn trống

của hệ thống

Public DatagramSocket( int port)

Throws SocketException

o Khởi tạo UDP socket và kết buộc nó vào một port cụ thể được chỉ ra

Trang 4

b Kết buộc địa chỉ cho DatagramSocket

Public void bind ( SocketAddress addr)

Throws SocketException

o Kết buộc DatagramSocket vào một địa chỉ cụ thể (IP và port)

c Gởi và nhận dữ liệu với DatagramSocket

DatagramSocket sử dụng lớp DatagramPacket để gởi và nhận các gói tin

- Nhận dữ liệu:

Public DatagramPacket ( byte []buf, int length)

o Khởi tạo 1 DatagramPacket dùng để nhận 1 packet có độ dài là length,

length phải nhỏ hơn hoặc bằng buf.length

o Buf: vùng nhớ đệm dùng để lưu dữ liệu sắp nhận

o Length: số lượng byte sẽ được đọc

Public void Receive (DatagramPacket p)

Throws IOException

o Thực hiện nhận về packet từ DatagramSocket, khi hàm này được gọi thành công, buffer của DatagramPacket sẽ chứ nội dung dữ liệu nhận được Đồng thời DatagramPacket còn chứa thông tin về địa chỉ IP và port của bên gởi

o Phương thức này khi gọi sẽ bị BLOCK cho đến khi có 1 DatagramPacket

được nhận

- Gởi dữ liệu:

Public DatagramPacket (byte []buf, int length, SocketAddress address)

Throws SocketException

o Khởi tạo 1 DatagramPacket để gởi 1 packet có độ dài là length đến cổng có

số hiệu port trên host cụ thể được chỉ ra trong address

Trang 5

Public void send ( DatagramPacket p)

Throws IOException

o Gởi DatagramPacket đến host nhận DatagramPacket chứ dữ liệu cần gởi,

độ dài dữ liệu, địa chỉ IP và số hiệu port của host sẽ nhận

- Một số phương thức hỗ trợ khác của lớp DatagramPacket:

Public InetAddress getAddress()

o Trả về địa chỉ IP của host đã gởi packet hoặc host sẽ nhận packet

Public int getPort()

o Trả về giá trị port của host đã gởi packet hoặc host mà packet sẽ được gởi đến

Public byte[] getData()

o Trả về nội dung dữ liệu trong DatagramPacket

Public int getLength()

o Trả về độ dài của dữ liệu trong DatagramPacket

d Đóng DatagramSocket :

Public void Close()

3 Minh họa ứng dụng mạng đơn giản sử dụng DatagramSocket

a Đề bài:

Viết một ứng dụng mạng trên giao thức UDP hỗ trợ chat tuần tự giữa Client – Server theo thứ tự Client  Server  Client  Server  Client  Server… bằng Console Quá trình chat sẽ kết thúc khi một trong hai bên gõ Exit

o Xác định kiến trúc mạng: CLIENT – SERVER

o Giao thức sử dụng tần transport: UDP

Trang 6

o Port lắng nghe phía server 1234

o Giao thức tầng ứng dụng khi trao đổi dữ liệu giữa client-server

b Chương trình (tham khảo source code kèm theo)

Tài liệu tham khảo:

http://docs.oracle.com/javase/1.4.2/docs/api/java/net/DatagramSocket.html

http://docs.oracle.com/javase/1.4.2/docs/api/java/net/DatagramPacket.html

Ngày đăng: 09/10/2016, 14:25

TỪ KHÓA LIÊN QUAN

w