成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

java UDP實現(xiàn)一個聊天工具的示例代碼

瀏覽:90日期:2022-08-18 10:42:13

題目:假設(shè)Tom和Jerry利用Java UDP進(jìn)行聊天,請為他們編寫程序。具體如下:(1)、Tom和Jerry聊天的雙方都應(yīng)該具有發(fā)送端和接收端;(2)、利用DatagramSocket與DatagramPacket;(3)、實現(xiàn) java.lang.Runnable類,重寫 run()方法。

java UDP實現(xiàn)一個聊天工具的示例代碼

學(xué)過計網(wǎng)的都知道,利用三元組(ip地址,協(xié)議,端口)就可以標(biāo)識網(wǎng)絡(luò)的進(jìn)程了。而進(jìn)行通信我們直接運(yùn)用socket就可以了,首先需要知道是socket是什么,這部分可以參考這個大佬寫的博客。https://www.jb51.net/article/121601.htm實現(xiàn)一個客戶端,那么需要Tom和Jerry都可以實現(xiàn)接收和發(fā)送功能,分別用兩個線程啟動。

接收線程Receive_Thread.java

package Chat_UDP;import java.io.IOException;import java.util.Date;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.text.SimpleDateFormat;public class Receive_Thread extends Thread { private static final int MAX_RECEIVE_BUFFER = 1024; private DatagramSocket server; private DatagramPacket packet; byte[] buffer = new byte[MAX_RECEIVE_BUFFER]; public Receive_Thread(DatagramSocket server) { this.server = server; packet = new DatagramPacket(buffer, buffer.length); } @Override public void run() { try { while(true) { //接收數(shù)據(jù)包 server.receive(packet); String s = new String(packet.getData(),packet.getOffset(),packet.getLength(),'UTF-8'); Date day=new Date(); SimpleDateFormat df = new SimpleDateFormat('yyyy-MM-dd HH:mm:ss'); if(packet.getPort() == 10001) System.out.println('Tom'+packet.getAddress()+' 說:'+s+'t'+df.format(day)); else{ System.out.println('Jerry'+packet.getAddress()+' 說 :'+s+'t'+df.format(day)); } packet.setLength(buffer.length); } } catch(IOException e) { System.out.println('IOException'); } }}

發(fā)送線程Send_Thread.java

package Chat_UDP;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.InetSocketAddress;import java.util.Scanner;public class Send_Thread extends Thread{ //發(fā)送的socket端 private DatagramSocket sender = null; //待發(fā)送的目標(biāo)地址 private InetSocketAddress address = null; //從鍵盤輸入 Scanner scan = new Scanner(System.in); public Send_Thread(DatagramSocket sender,InetSocketAddress address) { this.sender = sender; this.address = address; } @Override public void run() { // TODO Auto-generated method stub try { while(true) { //輸入待發(fā)送的內(nèi)容 String input = scan.nextLine(); if(input.equals('exit')) break; byte[] data = null; data = input.getBytes('UTF-8'); //創(chuàng)建UDP數(shù)據(jù)報 DatagramPacket pack = new DatagramPacket(data, data.length,address); sender.send(pack); } System.out.println('Exit!'); }catch(IOException e) { System.out.println('IOException'); } }}

聊天服務(wù)器Chat_Server.java

package Chat_UDP;//楊麗冰 201831064402import java.net.DatagramSocket;import java.net.InetSocketAddress;public class Chat_Server { private static final int DEST_PORT = 8888; private static final int SEND_PORT = 10001; private static final int RECE_PORT = 9000; private static final String IP = '127.0.0.1'; public static void main(String[] args) { try{ Send_Thread send_thread = null; Receive_Thread rece_thread = null; InetSocketAddress address = null; //創(chuàng)建待接受數(shù)據(jù)包的目的機(jī)的端口號和IP地址 address = new InetSocketAddress(IP, DEST_PORT); //創(chuàng)建發(fā)送的Socket端 DatagramSocket sendsocket = new DatagramSocket(SEND_PORT); //創(chuàng)建接受的Socket端 DatagramSocket recesocket = new DatagramSocket(RECE_PORT); //發(fā)送線程建立 send_thread = new Send_Thread(sendsocket, address); //接受線程的建立 rece_thread = new Receive_Thread(recesocket); send_thread.start(); rece_thread.start(); }catch(Exception e) { System.out.println('Exception!'); } }}

聊天客戶端 Chat_Client.java

package Chat_UDP;//楊麗冰 201831064402import java.net.DatagramSocket;import java.net.InetSocketAddress;public class Chat_Client {//聲明端口號 private static final int DEST_PORT = 9000; private static final int SEND_PORT = 10000; private static final int RECE_PORT = 8888; private static final String IP = '127.0.0.1'; public static void main(String[] args) { try{ Send_Thread send_thread = null; Receive_Thread rece_thread = null; InetSocketAddress address = null; //創(chuàng)建待接受數(shù)據(jù)包的目的機(jī)的端口號和IP地址 address = new InetSocketAddress(IP, DEST_PORT); //創(chuàng)建發(fā)送的Socket端 DatagramSocket sendsocket = new DatagramSocket(SEND_PORT); //創(chuàng)建接受的Socket端 DatagramSocket recesocket = new DatagramSocket(RECE_PORT); //發(fā)送線程建立 send_thread = new Send_Thread(sendsocket, address); //接受線程的建立 rece_thread = new Receive_Thread(recesocket); send_thread.start(); rece_thread.start(); }catch(Exception e) { System.out.println('Exception!'); } }}

需要注意的時候運(yùn)行的時候需要同時運(yùn)行聊天服務(wù)器和客戶端,才能夠正常運(yùn)行。最終效果如下:

java UDP實現(xiàn)一個聊天工具的示例代碼java UDP實現(xiàn)一個聊天工具的示例代碼

到此這篇關(guān)于java UDP實現(xiàn)一個聊天工具的文章就介紹到這了,更多相關(guān)java UDP聊天工具內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲va欧美va国产va天堂影院| 国产成人a级片| 国产一区二区精品久久| 老司机精品久久| 亚洲成a人v欧美综合天堂| 亚洲网站视频| 欧美国产精品专区| 91天堂素人约啪| 久久久亚洲综合| 91女人视频在线观看| 欧美一区二区三区精品| 国产麻豆视频精品| 欧美日韩一区二区不卡| 久热成人在线视频| 欧美美女bb生活片| 狠狠色综合播放一区二区| 精品污污网站免费看| 老司机一区二区| 欧美日本国产一区| 国产精品一区二区不卡| 日韩视频一区在线观看| 成人综合婷婷国产精品久久蜜臀| 丝瓜av网站精品一区二区| 国产区日韩欧美| 亚洲自拍偷拍欧美| 欧美亚洲一区| 肉色丝袜一区二区| 在线观看日韩av先锋影音电影院| 美女在线视频一区| 欧美午夜视频网站| 国产一区二区三区不卡在线观看 | 国产麻豆成人精品| 精品国产三级电影在线观看| 99v久久综合狠狠综合久久| 国产欧美精品区一区二区三区 | 国产伦精品一区二区三区四区免费| 亚洲码国产岛国毛片在线| 亚洲免费久久| 性久久久久久久久久久久| 在线免费观看日韩欧美| 国产精品一区二区果冻传媒| 2023国产精品| 在线观看一区| 日日摸夜夜添夜夜添国产精品| 欧美艳星brazzers| 粉嫩嫩av羞羞动漫久久久| 国产欧美日韩精品一区| 99亚洲一区二区| 日本成人在线不卡视频| 欧美裸体一区二区三区| 99精品视频一区二区| 国产女主播视频一区二区| 99国产精品久久久久老师| 日日夜夜免费精品| 日韩欧美国产午夜精品| 欧美日韩国产在线一区| 亚洲成a人v欧美综合天堂下载 | 国产一区免费视频| 亚洲在线成人精品| 欧美体内she精高潮| 成人综合婷婷国产精品久久蜜臀| 国产精品少妇自拍| 看欧美日韩国产| 成人久久18免费网站麻豆| 国产精品日产欧美久久久久| 亚洲一区二区高清视频| 精品一区二区三区免费播放 | 极品美女销魂一区二区三区 | 欧洲一区二区三区在线| 成人av第一页| ㊣最新国产の精品bt伙计久久| 久久综合狠狠| 岛国av在线一区| 亚洲情趣在线观看| 欧美夫妻性生活| 伊人蜜桃色噜噜激情综合| 理论片日本一区| 国产欧美日韩精品一区| 一本一道久久a久久精品综合蜜臀| 国产超碰在线一区| 亚洲三级小视频| 欧美精品成人一区二区三区四区| 国产一区二区无遮挡| 美国一区二区三区在线播放| 久久精品视频在线免费观看| 国产一区二三区| 日本一区二区免费在线观看视频| 国产精品久久久久久久久久直播 | 99在线|亚洲一区二区| 国产一二精品视频| 一区二区中文视频| 欧美区在线观看| 一区免费视频| 国产尤物一区二区| 亚洲色图清纯唯美| 欧美精品v日韩精品v韩国精品v| 欧美日韩一区二区三区免费| 精品一区二区在线免费观看| 亚洲欧洲av另类| 欧美一区二区久久| 国产精品亚洲综合久久| aaa亚洲精品一二三区| 日韩极品在线观看| 国产精品青草久久| 69成人精品免费视频| 亚洲经典视频在线观看| 福利电影一区二区| 午夜天堂影视香蕉久久| 国产欧美日韩精品一区| 精品视频1区2区3区| 一区二区久久| 成人黄色国产精品网站大全在线免费观看| 亚洲一区二区高清| 国产日韩欧美高清| 91精品国产乱| 母乳一区在线观看| 国产一区亚洲| 不卡的av网站| 日韩国产精品大片| 亚洲图片另类小说| 欧美精品一区二区三区视频| 欧美三级欧美一级| 亚洲综合精品四区| 欧美日韩一卡| 成人性视频网站| 午夜久久久影院| 亚洲欧洲精品一区二区三区| 精品久久国产字幕高潮| 欧美日韩三级视频| 久久综合久久久| 一本色道久久综合亚洲精品高清 | 久久久亚洲一区| 伊人蜜桃色噜噜激情综合| 丁香亚洲综合激情啪啪综合| 秋霞影院一区二区| 中文字幕综合网| 国产偷国产偷精品高清尤物| 欧美一区二区三区免费在线看| 在线视频亚洲一区| 亚洲一区国产| 亚洲丰满在线| 欧美午夜影院| 99re这里都是精品| 国产尤物一区二区| 婷婷久久综合九色综合绿巨人| 亚洲精品国产高清久久伦理二区| 久久久久久亚洲综合影院红桃| 欧美一区永久视频免费观看| 欧美色男人天堂| 一本到高清视频免费精品| 国产一区二区三区的电影 | 成人av在线播放网址| 国产麻豆视频一区二区| 国内精品久久久久影院一蜜桃| 亚洲va韩国va欧美va精品| 亚洲乱码国产乱码精品精的特点| 国产精品视频线看| 日本一区二区三区四区| 久久精品视频一区二区三区| 日韩精品在线一区二区| 欧美一区二区三区公司| 制服丝袜亚洲播放| 9191国产精品| 欧美乱妇一区二区三区不卡视频 | 欧美激情综合五月色丁香| 欧美电影免费观看高清完整版在| 91精品国产综合久久蜜臀| 欧美精品一二三| 欧美美女直播网站| 欧美精品在线一区二区| 欧美精品在线观看播放| 欧美剧情片在线观看| 欧美日韩国产高清一区二区| 欧美乱妇23p| 69久久夜色精品国产69蝌蚪网| 欧美一区二区三区电影| 欧美精品1区2区3区| 6080日韩午夜伦伦午夜伦| 91麻豆精品国产91久久久久久| 欧美精品一二三| 欧美一区二区三区思思人| 日韩欧美一级二级三级久久久| 欧美大片一区二区| 久久视频一区二区| 亚洲国产激情av| 日韩一区在线免费观看| 一区二区三区中文字幕电影 | 六月丁香综合在线视频| 国内一区二区视频| 国产凹凸在线观看一区二区| eeuss国产一区二区三区| 91在线免费看| 欧美日韩亚洲一区| 亚洲另类自拍| 男女精品视频| 欧美少妇bbb| 欧美v日韩v国产v| 国产精品网站一区| 成人欧美一区二区三区1314 | 波多野结衣精品在线|