利用UDP通信
来源:互联网 发布:免费商城源码 编辑:程序博客网 时间:2024/05/29 07:36
package UDP通信;
/*主机1程序*/
import java.io.*;import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Machine extends JFrame implements ActionListener ,Runnable{
JTextField textField;
JTextArea textArea;
JScrollPane scrollpane;
JButton sendButton;
int receivePort;
int sendPort;
Machine(String name,int receivePort,int sendPort){
super(name);
setSize(350,210);
this.sendPort=sendPort;
this.receivePort=receivePort;
textField=new JTextField(20);
sendButton=new JButton("发送");
JPanel northPanel=new JPanel();
northPanel.add(textField);
northPanel.add(sendButton);
add(northPanel,BorderLayout.NORTH);
textArea=new JTextArea(5,30);
JScrollPane scrollpane=new JScrollPane(textArea);
add(scrollpane,BorderLayout.CENTER);
sendButton.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
byte buffer[]=textField.getText().trim().getBytes();
try{
InetAddress address=InetAddress.getByName("127.0.0.1");
DatagramPacket dataPack=new DatagramPacket(buffer,buffer.length,address,sendPort);
//构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号
DatagramSocket dataSock=new DatagramSocket(); //表示用来发送和接收数据报包的套接字。
dataSock.send(dataPack); //从此套接字发送数据报包dataPack
}catch(Exception ex){
ex.printStackTrace();
}
}
public void listen(){
Thread thread=new Thread(this);
thread.start();
}
public void run(){
DatagramPacket pack=null;
DatagramSocket receiveData=null;
String message=null;
byte data[]=new byte[1024];
pack =new DatagramPacket(data,data.length);//构造 DatagramPacket,用来接收长度为 length 的数据包
try{
receiveData=new DatagramSocket(receivePort);//创建数据报套接字并将其绑定到本地主机上的指定端口。
while(true){
receiveData.receive(pack);//从此套接字接收数据报包pack。
message=new String(pack.getData(),0,pack.getLength());
textArea.append("收到的数据是 : "+message+"\n");
}
}catch(SocketException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
Machine frame=new Machine("主机1",6666,8888);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.listen();
}
}
/*主机2程序*/
package UDP通信;
import javax.swing.*;
public class Machine2 {
public static void main(String[] args) {
Machine frame=new Machine("主机2",8888,6666);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.listen();
}
}
- 利用UDP通信
- java 利用UDP协议 通信
- 利用Java实现UDP通信
- UDP通信编程------利用CAsyncSock类实现UDP异步通信
- 如何利用CAsyncSocket类实现UDP通信?
- MFC中利用CSocket实现UDP通信
- MFC中利用CSocket实现UDP通信
- MFC中利用CSocket实现UDP通信
- MFC中利用CSocket实现UDP通信
- C语言--利用UDP实现socket通信
- 利用UDP协议实现广播通信
- Java+利用UDP实现简单双机通信
- Unity利用UDP通信(发送字符串)
- 利用套接字实现UDP 通信 小测
- 利用UDP matlab与VS实时通信传输数据
- 利用UDP进行两台主机进行通信
- UDP通信
- UDP通信
- 40个很有用的Mac OS X Shell脚本和终端命令
- 图说Mac OS演变史:1984-2012
- Linux下ifconfig详解
- 畅想未来 Mac OS X十年之后会怎样?
- win7安装iis && HTTP 500错误怎么办?
- 利用UDP通信
- Mac OS崛起 Linux在开发者群体中失宠
- flex代码实例
- 专家称Mac OS X、iOS融合 2-3年内还难看到
- windows下如何查看端口是否被占用
- 跳出页面的frameset框架代码
- introduce yourself in the Interview(面试英语自我介绍)
- 第13周实验 1.封装一个求一元二次方程根的类SquareEquation,要求考虑解方程的异常,再编写一个窗口类EquationFrame。要求窗口使用三个文本框和一个文本区,其中三个文本框用来显示
- 国内外云计算平台大比拼