`
夏文权
  • 浏览: 242183 次
  • 性别: Icon_minigender_1
  • 来自: 贵州
社区版块
存档分类
最新评论

UDP编写的简单聊天程序

阅读更多
 import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import java.net.*;
/*
 * 用UDP编写的聊天程序
 */
public class UDPChat {
	Frame f = new Frame("我的聊天室");
	TextField tfIP = new TextField(15);
	/*
	tfd是用于输入IP地址的文本框,在发送数据时,要取出其中的IP地址,
	所以将其定义成为变量,以便发送消息的程序代码访问
	*/
	List lt = new List(6);
	/*
	lt是用于显示接受消息的列表框,在接受到数据时,
	要向其中增加新的记录项,所以将其定义为成员变量,
	以便接收消息程序代码访问
	*/
	DatagramSocket ds;
	/*
	 * 由于DatagramSocket的构造函数声明可能抛出异常,我们的程序需要用try...catch语句
	 * 进行异常捕获处理,所以不能直接在这里调用DatagramSocket的构造方法对ds进行初始化,
	 * 我们需要将ds的初始化放在Chat类的构造方法中去完成。
	 */
	public UDPChat(){
		try{
			ds = new DatagramSocket(3000);
		}catch(Exception e){
			e.printStackTrace();
		}
		new Thread(new Runnable(){
			public void  run(){
				byte buf[] = new byte[1024];
				DatagramPacket dp = new DatagramPacket(buf,buf.length);
				while(true){
					try{
						ds.receive(dp);
						lt.add(new String(buf,0,dp.getLength())+":from"+dp.getAddress().getHostAddress(),0);
					}catch(Exception e){
						e.printStackTrace();
					}
				}
			}
		}).start();
	}
	
	
	public static void main(String[] args){
		UDPChat chat = new UDPChat();
		chat.init();	
	}
	public void init(){
		f.setSize(300,300);
		f.add(lt);	
		
		Panel p = new Panel();
		p.setLayout(new BorderLayout());
		p.add("West",tfIP);
		TextField tfData = new TextField(20);
		p.add("East",tfData);
		f.add("South",p);
		
		f.setVisible(true);
		f.setResizable(false);//限制用户改变窗口的大小
		
		//增加关闭窗口的事件处理代码
		f.addWindowListener(new WindowAdapter(){
			@SuppressWarnings("unused")
			public void windowCloseing(WindowEvent e){
				ds.close();//程序退出时,关闭Socket,释放相关资源
				f.setVisible(false);	
				f.dispose();
				System.exit(0);
			}	
		});
		//增加在消息文本框中按下回车键的事件处理代码
		tfData.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				//要在这里增加网络消息发送相关程序
				
				//取出文本框中的消息字符串,并将其转换成字节数组
				byte[] buf;
				buf = e.getActionCommand().getBytes();
				try {
					DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName(tfIP.getText()),3000);
					try {
						ds.send(dp);
					} catch (IOException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
				} catch (UnknownHostException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				
				//下面的语句用于数据发送后,清空文本框中原来的内容
				((TextField)e.getSource()).setText("");	
			}	
		});
	}
}

 

  • 大小: 3.7 KB
分享到:
评论

相关推荐

    UDP简单聊天程序示例

    在这个"UDP简单聊天程序示例"中,我们将探讨如何利用C#中的`UdpClient`类来实现一个简单的UDP聊天应用。 首先,我们要理解`UdpClient`类在.NET Framework中的作用。`UdpClient`是System.Net.Sockets命名空间下的一...

    基于UDP的聊天程序

    【基于UDP的聊天程序】 UDP(User Datagram Protocol,用户数据报协议)是互联网协议栈中的一个传输层协议,它提供了一种无连接、不可靠的数据传输服务。与TCP(Transmission Control Protocol,传输控制协议)相比...

    基于UDP的网络聊天程序客户端程序

    【基于UDP的网络聊天程序客户端程序】 UDP(User Datagram Protocol,用户数据报协议)是一种无连接的、不可靠的传输层协议,相比TCP(Transmission Control Protocol,传输控制协议),UDP在速度和延迟方面具有...

    基于UDP的简单聊天程序

    **基于UDP的简单聊天程序** 在计算机网络编程中,UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议,它不提供连接建立、数据确认和流量控制等服务,因此它比TCP(Transmission Control ...

    基于UDP的局域网聊天程序

    【标题】:“基于UDP的局域网聊天程序” 在计算机网络通信中,用户数据报协议(UDP)是一种无连接的、不可靠的传输层协议,它提供了简单的数据发送和接收功能,无需建立连接过程,因此在实时应用或者对速度有较高...

    安卓基于UDP的简易聊天程序源码

    "安卓基于UDP的简易聊天程序源码" 指的是一个使用Android平台开发的简单聊天应用程序,其通信机制是基于用户数据报协议(UDP)。UDP是一种无连接的、不可靠的传输协议,它在互联网协议栈中位于传输层,适合于实时...

    模拟QQ的UDP局域网聊天程序

    【标题】:“模拟QQ的UDP局域网聊天程序”是一个基于Java编程语言开发的简易通讯应用,旨在模拟QQ的基本功能,让用户在局域网内实现简单的信息交流。该程序利用了UDP(User Datagram Protocol)协议,这是一种无连接...

    C++2010编写的UDP协议聊天程序

    使用UDP协议编写聊天软件,使得客户端之间可以自由地进行键盘聊天。 程序的具体要求: 1)在DOS下运行,能提供聊天内容输入界面和收到的文字聊天内容。 2)允许客户选择不同的其他客户方进行聊天,由于在一台机器上...

    UDP聊天程序(服务器端+客户端)C#

    UDP聊天程序是网络通信中的一个基础应用,它利用了用户数据报协议(UDP)进行数据传输。本项目是一个简单的C#实现,旨在提供一个类似QQ的聊天体验,尽管功能相对有限,但足以展示多线程和套接字编程的核心概念。 ...

    AndroidUDP网络传输聊天程序

    【Android UDP网络传输聊天程序】是一个使用用户数据报协议(UDP)进行通信的项目,它由两个部分组成:一个在个人计算机(PC)上运行的服务端,由Java编写,以及一个在Android智能手机上运行的客户端。这个程序展示...

    C#编写的基于UDP的多人聊天系统

    在这个场景中,我们关注的是一个使用C#编程语言编写的基于UDP(用户数据报协议)的多人聊天系统。UDP是一种无连接的、不可靠的传输层协议,它允许快速发送数据但不保证数据的顺序或完整性。C#提供了一个强大的.NET ...

    基于vb的UDP聊天程序

    【基于VB的UDP聊天程序】是一个使用Visual Basic(VB)编程语言实现的网络通信应用,主要利用了用户数据报协议(UDP)进行数据传输。UDP是传输层的一种无连接协议,相比TCP,它不保证数据的可靠传输,但具有更高的...

    vc++用UDP实现的一个简单的聊天程序

    在本文中,我们将深入探讨如何使用VC++和UDP(用户数据报协议)来构建一个简单的聊天程序。UDP是一种无连接的、不可靠的传输层协议,适合于对实时性要求较高但对数据完整性要求较低的应用场景,如在线游戏、视频通话...

    基于UDP的聊天程序(MFC实现)

    【标题】:“基于UDP的聊天...这个基于UDP的聊天程序尽管功能简单,但对于初学者来说,它是理解网络编程和MFC应用开发的一个好起点。通过分析和改进这个项目,可以学习到更多关于网络通信、UI设计和多线程编程的知识。

    用vb编写的UDP无连接聊天程序

    在"用vb编写的UDP无连接聊天程序"中,我们可以学到以下关键知识点: 1. UDP协议基础: - UDP的特点:无连接、不可靠、无序传输。这意味着数据包可能会丢失、重复或乱序到达,但其传输速度快,适合实时应用,如在线...

    C# 用UDP协议开发的局域网聊天程序

    标题"用C# UDP协议开发的局域网聊天程序"指的是一个基于C#编程语言,利用用户数据报协议(UDP)来实现的局域网内的即时通讯应用。UDP是一种无连接的传输层协议,常用于对实时性要求较高的应用场景,如在线游戏、视频...

    简单的Udp聊天程序

    【标题】:“简单的Udp聊天程序” 【描述】:“简单的udp聊天程序是使用VC++开发的一个Win32应用程序。在计算机网络中,UDP(User Datagram Protocol,用户数据报协议)是一种无连接的、不可靠的传输层协议,常用于...

Global site tag (gtag.js) - Google Analytics