📄 主机1.java
字号:
package 主机1;
import java.net.*;
import javax.swing.*;
import java.awt.event.*;
class 主机1Frame extends JFrame implements Runnable,ActionListener
{ JTextField out_message=new JTextField("发送数据到主机2:");
JTextArea in_message=new JTextArea();
JButton b=new JButton("发送数据包到主机2");
主机1Frame()
{ super("我是主机1");
setSize(200,200);setVisible(true);
b.addActionListener(this);
add(out_message,"South");add(in_message,"Center");add(b,"North");
Thread thread=new Thread(this);
thread.start();//线程负责接收数据包
}
public void actionPerformed(ActionEvent event) //点击按扭发送数据包
{ byte buffer[]=out_message.getText().trim().getBytes();
try{ InetAddress address=InetAddress.getByName("192.168.5.1");
DatagramPacket data_pack=
new DatagramPacket(buffer,buffer.length, address,888);
DatagramSocket mail_data=new DatagramSocket();
in_message.append("数据报目标主机地址:"+data_pack.getAddress()+"\n");
in_message.append("数据报目标端口是:"+data_pack.getPort()+"\n");
in_message.append("数据报长度:"+data_pack.getLength()+"\n");
mail_data.send(data_pack);
}
catch(Exception e){}
}
public void run() //接收数据包
{ DatagramPacket pack=null;
DatagramSocket mail_data=null;
byte data[]=new byte[8192];
try{ pack=new DatagramPacket(data,data.length);
mail_data=new DatagramSocket(666);
}
catch(Exception e){}
while(true)
{ if(mail_data==null) break;
else
try{ mail_data.receive(pack);
int length=pack.getLength();
InetAddress adress=pack.getAddress();
int port=pack.getPort();
String message=new String(pack.getData(),0,length);
in_message.append("收到数据长度:"+length+"\n");
in_message.append("收到数据来自:"+adress+"端口:"+port+"\n");
in_message.append("收到数据是:"+message+"\n");
}
catch(Exception e){}
}
}
}
public class 主机1
{ public static void main(String args[])
{ 主机1Frame 主机1win=new 主机1Frame();
主机1win.validate();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -