网络编程应用:基于UDP协议【实现聊天程序】--练习
2017-05-04 20:02
811 查看
要求:
代码:
发送端:
接收端:
运行结果:
接收端聊天列表:
发送端聊天列表:
使用UDP协议实现一个聊天程序
代码:
发送端:
package UDP聊天程序; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; import java.util.Scanner; public class Send { public static void main(String[] args) { System.out.println("发送端已启动!"); DatagramSocket socket=null; Scanner scanner=new Scanner(System.in); try { //1.创建Datagramsocket对象 socket=new DatagramSocket(); while(true){ //2.要发送的数据 String string=scanner.nextLine(); //3.创建数据包 DatagramPacket packet=new DatagramPacket(string.getBytes(), string.getBytes().length,InetAddress.getLocalHost(),6666); //4.发送数据 socket.send(packet); //若我方发送了bye,马上结束聊天 if(string.equals("bye")){ System.out.println("bye,聊天结束!"); break; } //5.接收--接收端回复的数据 byte[] bs=new byte[1024]; DatagramPacket packet2=new DatagramPacket(bs, bs.length); socket.receive(packet2); String string2=new String(packet2.getData(), 0, packet2.getLength()); //若对方发送了bye,马上结束聊天 if(string2.equals("bye")){ System.out.println("bye,聊天结束!"); break; } System.out.println("接收端回复:"+string2); } } catch ( fb15 SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(socket!=null){ socket.close(); } } } }
接收端:
package UDP聊天程序; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; import java.util.Scanner; public class Receive { public static void main(String[] args) { System.out.println("接收端已启动!"); DatagramSocket socket=null; Scanner scanner=new Scanner(System.in); try { //1.创建Datagrams对象 socket=new DatagramSocket(6666); while(true){ //2.创建数据包packet byte[] buf=new byte[1024]; DatagramPacket packet=new DatagramPacket(buf, buf.length); //3.接收数据 socket.receive(packet); String string=new String(packet.getData(), 0, packet.getLength()); //若对方发送了bye,马上结束聊天 if(string.equals("bye")){ System.out.println("bye,聊天结束!"); break; } System.out.println("发送端说:"+string); //4.给发送端回复 String string2=scanner.nextLine(); DatagramPacket packet2=new DatagramPacket(string2.getBytes(), string2.getBytes().length,packet.getAddress(),packet.getPort()); socket.send(packet2); //若我方发送了bye,马上结束聊天 if(string2.equals("bye")){ System.out.println("bye,聊天结束!"); break; } } } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(socket!=null){ socket.close(); } } } }
运行结果:
接收端聊天列表:
发送端聊天列表:
相关文章推荐
- 网络编程应用:基于UDP协议【实现文件下载】--练习
- {网络编程}和{多线程}应用:基于UDP协议【实现多发送方发送数据到同一个接收者】--练习
- 网络编程与多线程的应用--基于socket udp编写一个简单聊天程序
- 网络编程应用:基于TCP协议【实现一个聊天程序】
- Java网络编程 - 基于UDP协议 实现简单的聊天室程序
- 网络编程学习笔记(二)UDP协议及聊天小程序的实现
- 基于Udp的Socket网络编程聊天程序
- 利用TCP和UDP协议,实现基于Socket的小聊天程序
- linux网络编程之socket(十四):基于UDP协议的网络程序
- 利用TCP和UDP协议,实现基于Socket的小聊天程序(初级版)
- 网络编程应用:基于TCP协议【实现对象传输】--练习
- 基于Udp的Socket网络编程聊天程序
- 使用C#实现基于TCP和UDP协议的网络通信程序的基本示例
- linux网络编程之socket(十四):基于UDP协议的网络程序
- 【Java网络编程】UDP协议实例——简单的在线聊天程序
- linux网络编程之socket(十四):基于UDP协议的网络程序
- {网络编程}和{多线程}应用:基于TCP协议【实现多个客户端发送文件给一个服务器端】--练习
- 26-网络编程-09-网络编程(UDP协议-聊天程序)
- 网络编程应用:基于TCP协议【实现文件上传】--练习
- 黑马程序员_Java基础_网络编程_UDP传输协议编程,控制台聊天程序