UDP通信——简单的不能再简单的聊天程序(老鸟跳过)
来源:互联网 发布:java d3.js 编辑:程序博客网 时间:2024/05/22 03:23
在网上看到 好多UDP的聊天程序,都没有注释所以…… 我只是在写这个程序的时候把我遇到的问题加上了注释。
package hr.csdn.com;import java.awt.BorderLayout;import java.awt.Color;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;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.jar.JarFile;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JList;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;public class ChartTest extends JFrame implements ActionListener {/** * @param args * */ JPanel panel1,panel2; JTextField text1,text2,text3; JTextArea ta; JButton btn; JList l;public ChartTest(){super();this.setBounds(200,200,400,400);//设置窗体的坐标和大小panel1=new JPanel();ta=new JTextArea(15,15);text1=new JTextField(15);text3=new JTextField(15);text2=new JTextField(15);btn=new JButton("发送");btn.addActionListener(this);//给BUTTON设置监听器panel1.setLayout(new BorderLayout());panel1.add(text3,"North");panel1.add(ta,"Center");panel2=new JPanel();panel2.setLayout(new GridLayout(1,2));panel2.add(text1);panel2.add(text2);panel2.add(btn);this.setLayout(new BorderLayout());this.add(panel1,"North");this.add(panel2,"South");this.setVisible(true);}public static void main(String[] args) {// TODO Auto-generated method stub//ChartTest ch=new ChartTest();try {DatagramSocket rece=new DatagramSocket();//因为是UDP通信,所以开启程序的时候必须先启动 接收端,开启这个线程ChatRe c=new ChatRe(rece);new Thread(c).start();} catch (SocketException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}@Overridepublic void actionPerformed(ActionEvent e) {//这是BUTTON按钮的监听器,当你点击这个按钮的时候,发送消息// TODO Auto-generated method stubDatagramSocket ds;//创建一个DatagramSocket对象try {ds = new DatagramSocket();String str=this.text2.getText();try {DatagramPacket dp=new DatagramPacket(str.getBytes(),str.getBytes().length,InetAddress.getByName("127.0.0.1"),50000);ds.send(dp);ds.close();} catch (Exception e1) {// TODO Auto-generated catch blocke1.printStackTrace();}} catch (SocketException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}}class ChatRe implements Runnable{//单独开启一个线程 用来接收 信息ChartTest ch=new ChartTest();//这里创建一个ChartTest对象 用来调用下文中的ta 也就是把接收到的信息放到ta中public DatagramSocket ds; public ChatRe(DatagramSocket ds){ this.ds=ds; }@Overridepublic void run() {// TODO Auto-generated method stubtry {ds=new DatagramSocket(50000);} catch (SocketException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}byte[] buf=new byte[1024];DatagramPacket dp=new DatagramPacket(buf, buf.length);try {while(true){ds.receive(dp);String str=new String(dp.getData(),0,dp.getLength());ch.ta.setText(str);}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}ds.close();}}
- UDP通信——简单的不能再简单的聊天程序(老鸟跳过)
- UDP通信的简单实现(程序)
- 基于UDP的简单聊天程序
- 基于UDP的简单聊天程序
- 基于UDP协议的简单聊天程序
- 简单的udp单人聊天程序
- 基于UDP的简单聊天程序
- 一个简单的socket通信聊天程序
- 非常简单的UDP通信程序,C#
- c++通信---最简单的UDP程序
- 网络通信(一):简单的聊天程序
- 简单的UDP通信
- 简单的UDP通信
- 【Java网络编程】UDP协议实例——简单的在线聊天程序
- JAVA学习第六十课 — UDP协议 &基于多线程模拟简单的QQ聊天程序
- 一个简单的基于udp协议的聊天程序
- VB 利用UDP制作简单的点对点聊天程序
- 使用UDP实现一个简单的聊天程序。
- chromium编译
- DirectShow下载及配置
- hdu 2710 Max Factor
- java网络编程①基本常识
- 国产开源项目的七宗罪(转)
- UDP通信——简单的不能再简单的聊天程序(老鸟跳过)
- 如何卸载Windows服务!
- eclipse 环境下整合 struts2+spring+hibernate 开发web应用常见问题及解答
- inet_pton()&inet_ntop(),Linux下的IP地址转换函数
- J2SE中各种IO流整理
- EL表达式详解
- 猜拳游戏(剪刀 石头 布)
- 偶们学的一些小程序。。。求围观。
- poj 3921/hdu 2485 Destroying the bus stations(最短路而非网络流费用流)