`
liubo0_0
  • 浏览: 22004 次
社区版块
存档分类
最新评论

UPD聊天程序.

 
阅读更多

import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.List;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class Message {

/**
* @param args
*/

DatagramSocket ds = null;

public Message(){
try{
ds = new DatagramSocket(3000);
}catch(Exception e){
e.printStackTrace();
}
}

public static void main(String[] args) {

final Message m = new Message();
//构造界面
final Frame f = new Frame();
final List l = new List(6);
final TextField tfip = new TextField(15);
final TextField tfmeg = new TextField(20);
f.add(l,"Center");
Panel p = new Panel();
f.add(p,"South");
p.setLayout(new BorderLayout());
p.add(tfip,"West");
p.add(tfmeg,"East");
f.setSize(300, 400);
f.setResizable(false);
f.setVisible(true);

//分出一个线程,单独执行接收方法.因为receive方法能够阻碍程序,只有接收到程序才能继续运行.
new Thread(new Runnable(){
public void run() {
//初始化接受的内存缓冲区
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,1024);
while(true){
try {
m.ds.receive(dp);
String s = new String(dp.getData(),0,dp.getLength());
s += "--"+dp.getAddress().getHostAddress();
l.add(s,0);
} catch (IOException e) {
//如果Socket已经关闭,则不打印异常.
if(m.ds.isClosed()){

}else{
e.printStackTrace();
}

}
}

}

}).start();


//关闭界面监听
f.addWindowListener( new WindowAdapter(){
public void windowClosing(WindowEvent e){
m.ds.close();
f.dispose();
System.exit(0);
}
});


//按回城键发送数据.
tfmeg.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e) {
String ip = tfip.getText();
String message = tfmeg.getText();
try {
DatagramPacket dp = new DatagramPacket(message.getBytes(),message.getBytes().length,InetAddress.getByName(ip),3000);
m.ds.send(dp);
tfmeg.setText("");
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}

});
}

}

//在ip地址栏输入:127.0.0.1 ,可以接收到信息,因为127.0.0.1是本地ip,不经过网卡.

//输入本地ip可以也接收到信息.

//输入广播地址的ip,也可以收到信息.

//关于广播地址请看

http://baike.baidu.com/view/473043.htm

分享到:
评论

相关推荐

    一个TCP和UPD聊天、传收文件程序

    "myqq"可能是一个模仿腾讯QQ的简单聊天程序,它包含了实现TCP和UDP通信的代码逻辑,用户可以通过这个程序体验聊天和文件传输的功能。 综上所述,这个程序提供了基于TCP和UDP的通信服务,允许用户进行实时聊天和文件...

    聊天小程序

    聊天小程序的核心在于其背后的通信技术,这里提到了"UPD",即用户数据报协议(User Datagram Protocol),以及编程语言"java",说明这个小程序是用Java语言编写,并利用UDP进行网络通信。 **用户数据报协议(UDP)*...

    ChatRoom(Csocket).rar_C 聊天_Chatroom_upd chatroom C_聊天_语音聊天室

    在本文中,我们将深入探讨如何使用C++编程语言构建一个简单的聊天室,特别是涉及语音聊天功能。这个项目,名为"ChatRoom(Csocket)",是基于C++的网络编程,利用套接字(Socket)技术实现客户端与服务器之间的通信,...

    upd基于C#聊天工具

    【标题】:“upd基于C#聊天工具”指出这个项目是一个使用C#编程语言开发的聊天应用程序,它基于UDP(User Datagram Protocol)协议。UDP是一种无连接的、不可靠的传输层协议,常用于实时数据传输,如音频、视频流...

    linux下GTK编写网络聊天程序

    在Linux环境下,使用GTK(GIMP Toolkit)编写网络聊天程序是一项技术挑战,它涉及到图形用户界面设计、网络通信以及数据库管理等多个方面的知识。GTK是一种开源的GUI库,广泛用于Linux和其他Unix-like系统的应用程序...

    OICQ:使用Java语言编写的仿QQ聊天工具

    突然想把以前为这个程序录制视频的作业发布在bilibili上啦〜 于是,就有了 嗯〜当时因为有时间限制,所以视频要做加速处理〜希望不要嫌弃千千啦〜嘤〜 UPD:2019.04.15 看到好多人fork简单说说如何开箱吧

    基于udp聊天小程序

    一个聊天小程序,写的不是很成熟,本人在算法学习时涉及一些网络通信的相关的技术,很简单的一个小程序,可以实现简单的聊天

    基于UDP的C++网络类聊天程序(单机版的)

    在压缩包中的"UPD聊天"文件,可能包含了实现上述功能的源代码文件,包括客户端和服务器端的C++源代码,可能还包含编译和运行的说明。通过阅读和分析这些代码,你可以更深入地了解如何在实际项目中运用UDP通信。 总...

    C#2010下UDP聊天程序源码

    【C# 2010 UDP聊天程序源码解析】 UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,常用于实时通信、流媒体和在线游戏等对延迟敏感的应用。C# 2010下开发的UDP聊天程序主要涉及到以下几个关键...

    局域网内upd传输文件

    Indy组件直观易用,使得开发者可以轻松地构建网络应用程序。 2. **UDP协议**:UDP是一种无连接的传输层协议,与TCP相比,它不保证数据的顺序、完整性和可靠性,但具有更低的延迟和更高的传输效率。在局域网内进行...

    UDP消息和文件传输程序

    总结一下,"UDP消息和文件传输程序"是一个结合了MFC、Socket编程和UDP协议的实用工具,实现了文本聊天和文件交换功能。在设计和实现过程中,需要考虑UDP的不可靠性并采取相应措施保证数据完整性,同时利用MFC提供的...

    一个网络聊天室vc源码,使用UDP实现

    一个实现了简单功能的upd聊天室的源码,国内某知名游戏公司的复试题目。代码中实现了多网卡的自动广播和传输数据加密及签名。

    java实现基于UDP协议的简单聊天室,带文件分享功能

    Java实现的基于UDP协议的简单聊天室是一种网络通信应用,主要利用了Java的Socket编程来构建客户端和服务器端的通信框架。UDP(User Datagram Protocol)是一种无连接的、不可靠的传输协议,常用于实时数据交换,如...

    python实现udp聊天窗口

    UDP(User Datagram ...以上是关于Python实现UDP聊天窗口的核心技术点,通过这些知识,你可以理解并实现一个简单的UDP聊天程序。然而,实际的聊天应用通常还需要处理更多的细节,如错误处理、用户认证、消息确认等。

    socket聊天室源码

    【socket聊天室源码】是一个基于UDP协议实现的简易聊天应用程序,它的设计灵感来源于QQ的用户界面。在本文中,我们将深入探讨UDP协议、Socket编程以及如何构建一个基础的聊天室系统。 首先,UDP(User Datagram ...

    ChatSystem:用于 2 个或更多用户的私人聊天的基本服务器-客户端程序

    #聊天系统##About ChatSystem 是一个由 Joe Ferrer 制作的基本 Java 程序,它允许多个用户通过由任意主机/其中一个用户托管的私人服务器进行聊天。 通过 Client-Server 架构,假设 ChatSystem-server 正在运行,所有...

    QQ 模拟,MFC基于对话框VS2015,多线程UPD,listControl自绘技术

    QQ模拟项目是一个典型的MFC(Microsoft Foundation Classes)应用程序,它基于对话框,并使用了Visual Studio 2015作为开发环境。在这个项目中,开发者利用了MFC库的强大功能来实现一个类似于QQ的聊天界面,这涉及到...

    Wireboy.Socket.P2PSocket-master.zip

    这个项目可能是为了实现一个在Android设备间进行实时通信的应用,比如视频通话或语音聊天。 在描述中提到的"androidRTC"是指Android Real-Time Communication,它是Google推出的一种在Android设备上进行实时音视频...

    Python UDP\IP通信服务器与客户端

    在IT行业中,网络通信是...在实际应用中,这些基础示例可以作为构建更复杂网络应用程序的起点,比如聊天室、分布式系统的一部分或是物联网设备之间的通信。了解并熟练掌握这些知识点,对于开发和维护网络应用至关重要。

    c# UDP 局域网异步通讯实现广播,接收发送string数据

    C#是一种广泛用于构建桌面和网络应用程序的编程语言,它提供了强大的网络编程支持。本篇文章将详细探讨如何使用C#实现UDP局域网异步通信,包括广播和发送/接收字符串数据。 首先,理解UDP(User Datagram Protocol...

Global site tag (gtag.js) - Google Analytics