UDP can realize the online chat function, I here is a simple simulation:
Send side:
Packagecom.seven.udp;ImportJava.io.BufferedReader;ImportJava.io.InputStreamReader;ImportJava.net.DatagramPacket;ImportJava.net.DatagramSocket;Importjava.net.InetAddress; Public classCharbyupdsendImplementsRunnable {PrivateDatagramsocket ds; PublicCharbyupdsend (datagramsocket ds) { This. ds =ds; } @Override Public voidrun () {Try { //inputBufferedReader BUFR =NewBufferedReader (NewInputStreamReader (system.in)); String Line=NULL; while(line = Bufr.readline ())! =NULL) {Datagrampacket DP=NewDatagrampacket (Line.getbytes (), Line.length (), Inetaddress.getbyname ("127.0.0.1"), 10001); Ds.send (DP); } } Catch(Exception e) {e.printstacktrace (); } }}
Receiving end:
Packagecom.seven.udp;ImportJava.net.DatagramPacket;ImportJava.net.DatagramSocket; Public classCharbyupdreceiveImplementsrunnable{PrivateDatagramsocket ds; Publiccharbyupdreceive (datagramsocket ds) { This. ds =ds; } @Override Public voidrun () {Try{ while(true){ byte[] buf =New byte[1024]; Datagrampacket DP=NewDatagrampacket (buf, buf.length); Ds.receive (DP); String Data=NewString (Dp.getdata (), 0, Dp.getlength ()); System.out.println (dp.getaddress ()+ "-+" +data); } }Catch(Exception e) {e.printstacktrace (); Throw NewRuntimeException (e); } }}
Main program:
Packagecom.seven.udp;ImportJava.net.DatagramSocket; Public classChardemo { Public Static voidMain (string[] args)throwsException {datagramsocket send=NewDatagramsocket (); Datagramsocket Receive=NewDatagramsocket (10001); NewThread (Newcharbyupdsend (send)). Start (); NewThread (Newcharbyupdreceive (receive)). Start (); }}
Start the receiver first, and then start the sender, so that you can achieve a small chat effect, although this is on the machine, as long as the address and port pairs, so that you can achieve online chat!
Java Network Programming (4)--UDP implementation Chat