`
liomao
  • 浏览: 78412 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

简单的UDP 聊天室

阅读更多

刚学习JAVA socket 时的一个例子,希望对新手有用。

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.awt.event.*;

class Client extends Frame implements Runnable{
	Panel panel;
	TextArea ta;
	TextField tf2,tf_host,tf_name;
	Button b1;
	Label l;
	byte sdata[];
	byte rdata[];
	InetAddress ad;
	DatagramPacket out,in;
	DatagramSocket ds1,ds2;
	String mm;
	Thread tt;
	
	public static void main(String[] args) {
		new Client("华软UDP聊天室");

	}
	public Client(String ss){
		super(ss);
		panel=new Panel();
		ta=new TextArea(12,50);
		panel.add(ta);
		panel.add(new Label("主机:"));
		tf_host=new TextField("127.0.0.1",15);
		tf2=new TextField("This is a text",40);
		b1=new Button("发送消息");
		l=new Label("消息:");
		panel.add(tf_host);
		panel.add(new Label("   昵称:"));
		tf_name=new TextField("猪八戒",10);
		panel.add(tf_name);
		panel.add(l);
		panel.add(tf2);
		panel.add(b1);
		add(panel);	
		setBounds(100,100,400,330);
		setVisible(true);
		validate();
		addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent dd){
				System.exit(0);
			}
		});
		b1.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent ss){
				sdata=(tf_name.getText().trim()+" 说:"+tf2.getText().trim()).getBytes();
				try{
					ad=InetAddress.getByName(tf_host.getText().trim());
					out=new DatagramPacket(sdata,sdata.length,ad,666);  //端口666
					ds1=new DatagramSocket();
					ds1.send(out);
					ta.append(tf_name.getText().trim()+" 说:"+tf2.getText()+"\n");
				}
				catch(Exception dd){
					ta.append("error");
				}
			}
		});
		tt=new Thread(this);
		tt.start();
	}
	public void run(){
		rdata=new byte[100];
		try{
			in=new DatagramPacket(rdata,rdata.length);
			ds2=new DatagramSocket(888);  //监听端口888
		}catch(Exception dd){
			ta.append("Error");
			
		}
		while(true){
			try{
				ds2.receive(in);
				mm=new String(in.getData(),0,in.getLength());
				ta.append(mm+"\n");
			}catch(Exception dd){
				ta.append("Error2\n");
			}
		}
	}
	
	
}
 另外一端也很简单,只要把上面的程序端口那里,把666 和888 调换就可以了。
分享到:
评论

相关推荐

    简单UDP聊天室 java版

    【标题】:“简单UDP聊天室 java版” 【描述】中的知识点主要涉及到的是基于Java实现的一个简单的用户数据报协议(UDP)聊天室。UDP是一种无连接的、不可靠的传输层协议,它在互联网协议族中扮演着重要的角色。这个...

    UDP聊天室客户端

    【UDP聊天室客户端】是一个基于C++编程语言实现的网络通信工具,主要利用了用户数据报协议(User Datagram Protocol,UDP)进行数据传输。UDP是一种无连接、不可靠的传输协议,它不保证数据包的顺序、不进行重传,...

    UDP简易聊天室

    在UDP聊天室中,当一个用户成功连接到服务器并登录后,服务器会广播一条消息,通知所有在线用户新用户已上线。这涉及到UDP的无连接特性和广播机制。UDP不需要像TCP那样建立连接,而是直接发送数据报文,因此可以...

    C#UDP聊天室

    【C# UDP聊天室】是一个基于C#编程语言实现的简单网络通信应用,它利用了用户数据报协议(UDP)进行数据传输。UDP是一种无连接的、不可靠的传输协议,相比TCP,它更注重速度和低延迟,适用于实时通信如语音聊天、...

    udp聊天室源码

    UDP聊天室源码是一个基于用户数据报协议(UDP)实现的多用户聊天应用程序。UDP是一种无连接的、不可靠的传输层协议,它相对于TCP(传输控制协议)来说,具有更低的延迟和更高的效率,适合实时通信或者对数据丢失不太...

    udp实现聊天室项目

    综上所述,这个项目展示了如何利用UDP协议、SQLite3数据库和链表数据结构来创建一个简单的聊天室应用。开发者需要具备UDP协议理解、数据库操作和链表数据结构的使用经验,同时熟悉C语言编程,才能成功实现这样的项目...

    java之UDP聊天室

    Java之UDP聊天室是一个实现多对多通信的项目,它基于用户数据报协议(User Datagram Protocol,UDP)来构建。UDP是一种无连接的、不可靠的传输层协议,相较于TCP,它具有更低的延迟和更高的效率,适合实时通信或者对...

    外文文献UDP聊天室程序

    ### 外文文献UDP聊天室程序的关键知识点 #### 一、引言与背景 - **UDP简介**:用户数据报协议(User Datagram Protocol,UDP)是一种无连接的传输层协议,它不提供可靠的数据传输服务,但具有低开销、高效率的特点...

    基于UDP协议的聊天室设计

    【基于UDP协议的聊天室设计】是一个典型的网络编程项目,主要涵盖了UDP(用户数据报协议)的基础知识,以及如何利用这种协议实现一个简单的聊天室功能。UDP是传输层的一种无连接协议,它不保证数据包的顺序、完整性...

    vb6 udp 聊天室

    在VB6(Visual Basic 6)环境中开发一个UDP聊天室是一项涉及网络编程和多线程技术的任务。UDP(User Datagram Protocol)是一种无连接的、不可靠的传输协议,常用于实时数据交换,如在线游戏和视频流等。下面将详细...

    c语言实现的udp聊天室

    本项目“C语言实现的UDP聊天室”是一个基础的网络通信示例,它利用了用户数据报协议(UDP)进行数据传输,为用户提供一个简单的多人聊天环境。UDP是一种无连接的、不可靠的传输协议,相对于TCP而言,它的特点是速度...

    UDP实现简单聊天室功能

    创建一个简单的UDP聊天室,我们需要以下几个主要步骤: 1. **服务器端**: - 创建一个UDP套接字,使用`socket()`函数。 - 绑定IP地址和端口,使用`bind()`函数,通常选择INADDR_ANY来监听所有网络接口。 - 开始...

    一个简单的UDP聊天室

    【标题】:“一个简单的UDP聊天室” 在计算机网络编程中,UDP(User Datagram Protocol)是一种无连接的传输层协议,它提供了比TCP更快速、更低延迟的通信方式,但不保证数据包的顺序和可靠性。这个“简单的UDP聊天...

    QT UDP聊天室软件

    QT UDP聊天室软件是一款利用QT库和UDP协议开发的多用户聊天应用,它允许在同一局域网内的多个成员进行实时通信。这个项目展示了如何利用网络编程技术构建一个基本的聊天平台,尤其关注UDP(用户数据报协议)的使用。...

    udp聊天室16031125,udp聊天室 java,Python

    "udp聊天室16031125" 是一个特定的项目名称,表明这是一个基于UDP协议的网络聊天室实现,时间戳“16031125”可能指的是项目的创建或更新日期。"udp聊天室 java,Python" 指出该聊天室的实现涉及两种编程语言:Java和...

    TCP+UDP聊天室

    在这个“TCP+UDP聊天室”项目中,我们看到这两种协议被巧妙地结合起来,以实现高效且可靠的通信。 首先,TCP是一种面向连接的、可靠的协议。它在数据传输前会先建立连接,并通过三次握手确保双方都能正常通信。在...

    UDP聊天室.zip

    使用 Qt 基于 UDP 协议构建网络聊天室实例,包含 UdpServerDemo 和 UdpClientDemo 两部分程序,由于 UDP 方式不会建立连接,所以在服务端采用QList容器管理客户端状态。

    udp.rar_UDP_UDP网络聊天室_UDP聊天室_java UDP聊天

    UDP聊天室的工作原理是基于广播或者多播的方式,每个参与者都会发送消息到一个特定的端口,其他所有监听该端口的用户都能接收到这些消息。这个过程涉及到的主要概念和技术包括: 1. **端口**:在UDP中,数据报文...

    基于UDP的简单局域网聊天室框架

    【基于UDP的简单局域网聊天室框架】是一种利用UDP(User Datagram Protocol)协议实现的简易聊天室系统,适用于初学者学习网络编程。这个框架主要实现了基础的群聊功能,包括用户上线、下线以及成员列表的变化显示。...

    点对点通讯UDP聊天室VB程序

    在本项目中,“点对点通讯UDP聊天室VB程序”是一个基于UDP协议的VB(Visual Basic)实现的聊天应用程序。UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,它提供了快速的数据传输,但不保证数据...

Global site tag (gtag.js) - Google Analytics