sách gpt4 ăn đã đi

Lập trình Java sử dụng UDP để thiết lập ví dụ về mã hệ thống trò chuyện nhóm

In lại Tác giả: qq735679552 Thời gian cập nhật: 27-09-2022 22:32:09 26 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết trên blog CFSDN này Lập trình Java sử dụng UDP để thiết lập một mã hệ thống trò chuyện nhóm được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.

Giới thiệu các lớp java liên quan.

Giao thức DatagramSocket.

lớp công khai DatagramSocket mở rộng Object 。

Lớp này đại diện cho một socket được sử dụng để gửi và nhận các gói datagram.

Ổ cắm datagram là điểm gửi hoặc nhận cho dịch vụ phân phối gói. Mỗi gói được gửi hoặc nhận trên ổ cắm datagram được đánh địa chỉ và định tuyến riêng. Nhiều gói được gửi từ máy này sang máy khác có thể đi theo các tuyến khác nhau và có thể đến theo thứ tự khác nhau.

Gửi quảng bá UDP luôn được bật trên DatagramSocket. Để nhận các gói quảng bá, DatagramSocket phải được liên kết với một địa chỉ ký tự đại diện. Trong một số triển khai, các gói quảng bá cũng có thể được nhận khi DatagramSocket được liên kết với một địa chỉ cụ thể hơn.

Dữ liệu có thể được gửi và nhận thông qua việc gửi và nhận của DatagramSocket.

public void receive(DatagramPacket p) ném ra IOException 。

Nhận gói datagram từ ổ cắm này. Khi phương thức này trả về, bộ đệm của DatagramPacket sẽ chứa đầy dữ liệu đã nhận. Gói datagram cũng chứa địa chỉ IP của người gửi và số cổng trên máy của người gửi.

Phương thức này chặn cho đến khi nhận được một datagram. Trường độ dài của đối tượng gói datagram chứa độ dài của thông tin nhận được. Nếu tin nhắn dài hơn độ dài gói tin, tin nhắn sẽ bị cắt bớt.

Nếu trình quản lý bảo mật tồn tại và phương thức checkAccept của trình quản lý bảo mật không cho phép hoạt động nhận thì không thể nhận được gói.

tham số:

p - DatagramPacket nơi dữ liệu đến sẽ được đặt.

Ném:

IOException - nếu xảy ra lỗi I/O.

SocketTimeoutException - nếu setSoTimeout đã được gọi trước đó và giá trị thời gian chờ đã trôi qua.

PortUnreachableException - Có thể bị ném ra khi ổ cắm được kết nối với mục tiêu hiện không thể truy cập được. Lưu ý rằng không có gì đảm bảo rằng ngoại lệ này sẽ được đưa ra.

IllegalBlockingModeException - nếu ổ cắm này có kênh được liên kết và kênh đó ở chế độ không chặn.

public void send(DatagramPacket p) ném ra lỗi IOException.

Gửi gói datagram từ ổ cắm này. DatagramPacket chứa thông tin chỉ ra: dữ liệu được gửi, độ dài của nó, địa chỉ IP của máy chủ từ xa và số cổng của máy chủ từ xa.

Nếu có trình quản lý bảo mật và ổ cắm hiện không được kết nối với địa chỉ từ xa, thì trước tiên, phương pháp này sẽ thực hiện một số kiểm tra bảo mật. Đầu tiên, nếu p.getAddress().isMulticastAddress() là đúng, thì phương thức này gọi phương thức checkMulticast của trình quản lý bảo mật với p.getAddress() làm tham số. Nếu giá trị của biểu thức này là sai thì phương thức này sẽ gọi phương thức checkConnect của trình quản lý bảo mật với p.getAddress().getHostAddress() và p.getPort() làm tham số. Nếu thao tác không được phép, mỗi lệnh gọi đến phương thức quản lý bảo mật sẽ dẫn đến SecurityException.

tham số:

p - DatagramPacket sẽ được gửi.

Ném:

IOException - nếu xảy ra lỗi I/O.

SecurityException - nếu trình quản lý bảo mật tồn tại và phương thức checkMulticast hoặc checkConnect của nó không cho phép gửi.

PortUnreachableException - Có thể bị ném ra khi ổ cắm được kết nối với mục tiêu hiện không thể truy cập được. Lưu ý rằng không có gì đảm bảo rằng ngoại lệ này sẽ được đưa ra.

IllegalBlockingModeException - nếu ổ cắm này có kênh được liên kết và kênh đó ở chế độ không chặn.

Gói dữ liệu 。

lớp công khai cuối cùng DatagramPacket mở rộng Object 。

Lớp này đại diện cho các gói datagram UDP, được sử dụng để triển khai các dịch vụ phân phối gói không kết nối.

Người xây dựng

DatagramPacket(byte[]buf,intlength) 。

Xây dựng DatagramPacket để nhận gói dữ liệu có độ dài.

DatagramPacket(byte[]buf,intlength,InetAddressaddress,intport) 。

Xây dựng gói datagram để gửi gói có độ dài đến số cổng được chỉ định trên máy chủ được chỉ định.

Ví dụ về hệ thống trò chuyện nhóm UDP.

UDP không có kết nối. Trò chuyện nhóm là gửi dữ liệu đến địa chỉ phát sóng (địa chỉ phát sóng), để mọi người sẽ nhận được tin nhắn bằng cách sử dụng các chuỗi, bắt đầu chuỗi người gửi và chuỗi người nhận, và người gửi đọc đầu vào bàn phím dưới dạng đầu ra, người nhận sẽ đọc. nhập thông tin và hiển thị nó.

người gửi.

UdpSender.java 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
bưu kiện cn.xidian.socket;
nhập khẩu java.io.BufferedReader;
nhập khẩu java.io.IOException;
nhập khẩu java.io.InputStreamReader;
nhập khẩu java.net.DatagramPacket;
nhập khẩu java.net.DatagramSocket;
nhập khẩu java.net.InetAddress;
công cộng lớp học UdpNgười gửi mở rộng Chủ đề{
     @Ghi đè
       công cộng vô hiệu chạy() {
         thử {
             //Tạo dịch vụ UDP
             Ổ cắm DatagramSocket = mới Giao diện
             //Chuẩn bị gói dữ liệu để gửi
             //Đọc đầu vào từ đầu vào hệ thống
             BufferedReader trong = mới Bộ đệm đọc( mới InputStreamReader(System.in)) ;
             Dòng dây = vô giá trị ;
             trong khi ((dòng = trong.readLine()) != vô giá trị ){
                 // Tôi đã kiểm tra và ghi địa chỉ cục bộ. Trò chuyện nhóm cần ghi địa chỉ quảng bá, chẳng hạn như: 192.168.137.255
                 DatagramPacket dữ liệu = mới DatagramPacket(line.getBytes(), line.getBytes().length, InetAddress.getByName( "127.0.0.1" ), 9090 );
                 //Gửi dữ liệu
                 socket.gửi(dữ liệu);
             }
             // Đóng ổ cắm
             socket. đóng();
         }
         nắm lấy (IOException e) {
             e.printStackTrace();
         }
     }
}

Người nhận.

UdpReceiver.java 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
bưu kiện cn.xidian.socket;
nhập khẩu java.io.IOException;
nhập khẩu java.net.DatagramPacket;
nhập khẩu java.net.DatagramSocket;
công cộng lớp học Người nhận Udp mở rộng Chủ đề {
     @Ghi đè
       công cộng vô hiệu chạy() {
         thử {
             // Thiết lập dịch vụ UDP và cổng nghe
             Ổ cắm DatagramSocket = mới Ổ cắm dữ liệu 9090 );
             // Chấp nhận gói dữ liệu
             byte [] nhiệt độ = mới byte [ 1024 ];
             DatagramPacket dữ liệu = mới DatagramPacket(temp, temp.length);
             Cờ Boolean = ĐÚNG VẬY ;
             trong khi (lá cờ){
                 socket.receive(dữ liệu);
                 // Xuất thông tin liên quan của người gửi
                 Chuỗi senderAddress = data.getAddress().getHostAddress();
                 Chuỗi senderHostName = data.getAddress().getHostName();
                 System.out.println(tên máy chủ người gửi+ "(" +Địa chỉ người gửi+ ")" + " nói: " + mới Chuỗi(temp, 0 ,data.getLength()));
             }
             //Đóng tài nguyên
             socket. đóng();
         }
         nắm lấy (IOException e) {
             e.printStackTrace();
         }
     }
}

Phương pháp chính.

UdpMain.java 。

?
1
2
3
4
5
6
7
8
9
10
11
bưu kiện cn.xidian.socket;
công cộng lớp học Udp Chính {
     công cộng tĩnh vô hiệu main(String[] args) {
         //Bắt đầu chuỗi UdpReceiver
         Người nhận UdpReceiver = mới Người nhận Udp();
         receiver.start();
         //Bắt đầu chuỗi UdpSender
         Người gửi UdpSender = mới UdpSender();
         người gửi.start();
     }
}

Kết quả kiểm tra.

Lập trình Java sử dụng UDP để thiết lập ví dụ về mã hệ thống trò chuyện nhóm

Phía đầu vào đọc đầu vào bàn phím dưới dạng đầu ra và người nhận nhận được tin nhắn và hiển thị IP và tên máy chủ của người gửi.

Tóm tắt.

Trên đây là toàn bộ nội dung bài viết về lập trình Java sử dụng UDP để thiết lập một ví dụ về mã hệ thống chat nhóm hi vọng sẽ hữu ích với mọi người. Bạn bè quan tâm có thể tiếp tục tham khảo các chủ đề liên quan khác trên trang này nếu có thiếu sót gì vui lòng để lại lời nhắn để chỉ ra. Cảm ơn bạn bè đã ủng hộ trang web này! .

Liên kết gốc: http://blog.csdn.net/gavin__zhou/article/details/52116483.

Cuối cùng, bài viết về lập trình Java sử dụng UDP để thiết lập ví dụ mã hệ thống trò chuyện nhóm có ở đây. Nếu bạn muốn biết thêm về lập trình Java sử dụng UDP để thiết lập ví dụ mã hệ thống trò chuyện nhóm, vui lòng tìm kiếm các bài viết CFSDN hoặc tiếp tục duyệt qua các bài viết liên quan. , Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

26 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress