java的UDP进行通信的一个小案例
来源:互联网 发布:淘宝卖女装好吗 编辑:程序博客网 时间:2024/05/10 17:54
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.HeadlessException;
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.awt.event.WindowListener;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class UDPCommunicationTest extends Frame implements Runnable{
private List list = new List(6);
private TextField ipTextField = new TextField(15);
private TextField contenTextField = new TextField(18);
private static UDPCommunicationTest communicationTest = null;
private static DatagramSocket datagramSocket = null;
public static void main(String[] args) {
communicationTest = new UDPCommunicationTest();
communicationTest.buildWindow();
communicationTest.contentClickEvent();
//当我们点击关闭窗口按钮的时候,释放资源,退出改程序,并且把socket关闭
communicationTest.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
super.windowClosing(e);
datagramSocket.close();
communicationTest.setVisible(false);
communicationTest.dispose();
System.exit(0);
}
});
}
public UDPCommunicationTest()
throws HeadlessException {
try {
//这个参数表示接受数据的端口号
datagramSocket = new DatagramSocket(3000);
new Thread(this).start();
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//这是创建一个通信的窗口
public void buildWindow()
{
this.add(list, BorderLayout.CENTER);
Panel panel = new Panel();
panel.setLayout(new BorderLayout());
ipTextField.setText("192.168.1.101");
panel.add(ipTextField, BorderLayout.WEST);
contenTextField.setText("请输入发送信息:");
panel.add(contenTextField, BorderLayout.EAST);
this.add(panel, BorderLayout.SOUTH);
this.setBounds(400, 200, 300, 400);
this.setVisible(true);
this.setResizable(false);
}
//这是当我们点击回车按钮的时候就发送信息出去
public void contentClickEvent()
{
contenTextField.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
try {
String ip = ipTextField.getText();
String content = contenTextField.getText();
DatagramPacket p = new DatagramPacket(content.getBytes(), content.getBytes().length, InetAddress.getByName(ip), 3000);
datagramSocket.send(p);
contenTextField.setText("");
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
}
//这是开启另外一个线程对数据进行接受,并且将数据添加到list里面
public void run() {
byte [] buf = new byte[1024];
DatagramPacket datagramPacket = new DatagramPacket(buf, 1024);
try {
while(true)
{
datagramSocket.receive(datagramPacket);
int len = datagramPacket.getLength();
String ip = datagramPacket.getAddress().getHostAddress();
int port = datagramPacket.getPort();
//第二个参数是将数据加在list的第一行
list.add(new String(buf, 0, len) + " from " + ip + " : " + port, 0);
}
} catch (Exception e) {
if(datagramSocket.isClosed())
{
}else
{
e.printStackTrace();
}
}
}
}
- java的UDP进行通信的一个小案例
- 一个Udp通信的小程序
- 基于qt的一个udp通信小程序
- Python中网络UDP通信的一个小例子
- Java的UDP通信
- java的UDP通信
- JAVA 的一个小案例分析
- 一个简单的Java UDP协议通信的例子
- 一个简单的JAVA网络通信 UDP 单工方式
- 基于udp的socket编程小例子之使用多线程进行通信
- 于udp通信的一点小总结
- Java 网络 UDP 一个局域网下的聊天小程序
- 一个关于UDP通信端口的问题
- 一个最简单的UDP通信
- Java TCP\UDP的典型案例
- 《java入门第一季》之UDP协议下的网络编程小案例
- 关于java中static一个有意思的小案例
- Java Cookie的使用以及一个小案例
- java中UPD的一个简单的例子
- [技术讨论]软件与程序的差别
- 利用三个源码包libnet、libnids、libpcap轻松搭建Linux网络入侵检测系统
- SAP 中生产口令的含义
- linux下 /根目录下面的子目录介绍
- java的UDP进行通信的一个小案例
- 从url显示图片
- 不规则形状的剪切
- CLisp 5:用Socket包建立TCP/IP连接
- WPF图标拾取器
- 用python的BeautifulSoup分析html
- 歌到这个份上,足矣
- POJ 1696 Space Ant
- sql反模式分析2