网络编程练习:聊天

匿名 (未验证) 提交于 2019-12-02 23:51:01

【需求】:实现双方聊天(收数据和发数据)

【技术】:网络编程、IO流、多线程

【代码】:

 /* 需求:实现双方聊天(收数据和发数据) 所需技术:网络编程、IO流、多线程 */ import java.net.*; import java.io.*; class SendInfo implements Runnable { 	private DatagramSocket ds; 	public SendInfo(DatagramSocket ds){ 		this.ds=ds; 	} 	public void run(){ 		try{ 			BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in)); 			String line=null; 			while((line=bufr.readLine())!=null){ 				if("0000".equals(line)) 					break; 				byte[] buf=line.getBytes(); 				DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.1"),10001); 				ds.send(dp); 			} 		} 		catch (Exception e){ 			throw new RuntimeException("发送数据异常!!!"); 		} 	} } class ReceInfo implements Runnable { 	private DatagramSocket ds; 	public ReceInfo(DatagramSocket ds){ 		this.ds=ds; 	} 	public void run(){ 		try{ 			while(true){ 				byte[] buf=new byte[1024]; 				DatagramPacket dp=new DatagramPacket(buf,buf.length); 				ds.receive(dp); 				String ip=dp.getAddress().getHostAddress(); 				String data=new String(dp.getData(),0,dp.getLength()); 				int port=dp.getPort(); 				System.out.println(ip+"\\"+port+"::"+data); 			} 		} 		catch (Exception e){ 			throw new RuntimeException("接收数据异常!!!"); 		} 	} } class UdpChat { 	public static void main(String[] args) throws Exception 	{ 		DatagramSocket sendSocket=new DatagramSocket(6666); 		DatagramSocket receSocket=new DatagramSocket(10001); 		 		new Thread(new SendInfo(sendSocket)).start(); 		new Thread(new ReceInfo(receSocket)).start(); 	} }

【截图】:

由于只有博主一个人所以属于自娱自乐。。。

文章来源: https://blog.csdn.net/The_Best_Hacker/article/details/97015812
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!