介绍
这篇文章主要介绍Java如何实现UDP多线程在线咨询,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Java是什么
Java是一门面向对象编程语言,可以编写桌面应用程序,网络应用程序,分布式系统和嵌入式系统应用程序。
具体内容如下
1。发送的线程
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; import java.net.SocketException;//发送线程 public class  TalkSend implements Runnable  { ,,,DatagramSocket socket =,空; ,,,BufferedReader reader =,空; ,,,private int formPort;,//自身端口 ,,,private String toIP;,//发送到的IP ,,,private int toPort;,//发送到的端口 ,,,public TalkSend (int formPort, String toIP,, int toPort), { ,,,,,,,this.formPort =, formPort; ,,,,,,,this.toIP =, toIP; ,,,,,,,this.toPort =, toPort; ,,,,,,,try { ,,,,,,,,,,,socket =, new DatagramSocket (formPort); ,,,,,,,,,,,reader =, new BufferedReader (new InputStreamReader(系统)),,//获取控制台输入 ,,,,,,,},catch (SocketException e), { ,,,,,,,,,,,e.printStackTrace (); ,,,,,,,} ,,,} ,,@Override ,,,public void 运行(),{ ,,,,,,,,(真正的),{ ,,,,,,,,,,,try { ,,,,,,,,,,,,,,,String data =, reader.readLine();,//获取到的数据 ,,,,,,,,,,,,,,,byte [], datas =, data.getBytes();,//转换为需要的字节数组 ,,,,,,,,,,,,,,,//将数据打包成包 ,,,,,,,,,,,,,,,DatagramPacket packet =, new DatagramPacket(数据0,datas.length, new InetSocketAddress (this.toIP this.toPort)); ,,,,,,,,,,,,,,,socket.send(包),,//发送包 ,,,,,,,,,,,,,,,//退出指令 ,,,,,,,,,,,,,,,如果(packet.equals (“bye")) { ,,,,,,,,,,,,,,,,,,,休息; ,,,,,,,,,,,,,,,} ,,,,,,,,,,,},catch (IOException e), { ,,,,,,,,,,,,,,,e.printStackTrace (); ,,,,,,,,,,,} ,,,,,,,} ,,,,,,,socket.close (); ,,,} }
2。接收的线程
import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException;//接收线程 public class  TalkReceive implements Runnable  { ,,,DatagramSocket socket =,零,,//与发送端套接字的为同一个,实现通信 ,,,private int 港口; ,,,private String msgFrom;,//标志信息来源 ,,,public TalkReceive (int 港口,String msgFrom), { ,,,,,,,this.port =,港口; ,,,,,,,this.msgFrom=, msgFrom; ,,,,,,,try { ,,,,,,,,,,,socket =, new DatagramSocket(港口); ,,,,,,,},catch (SocketException e), { ,,,,,,,,,,,e.printStackTrace (); ,,,,,,,} ,,,} null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null nullJava如何实现UDP多线程在线咨询