?? b地.java
字號:
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
//主機一
class shanghai_Frame extends Frame implements Runnable,ActionListener{
TextField out_message=new TextField("發(fā)數(shù)據(jù)到北京");
TextArea in_message=new TextArea();
Button b=new Button("發(fā)數(shù)據(jù)到北京");
shanghai_Frame(){
super("我在上海");
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(); //線程負責接收數(shù)據(jù)
}
//接收數(shù)據(jù)
public void run(){
DatagramPacket pack=null;
DatagramSocket mail_data=null;
byte data[]=new byte[8192];
try{
pack=new DatagramPacket(data,data.length);
//使用端口666來接收數(shù)據(jù)(因為北京發(fā)來的數(shù)據(jù)報的目標端口是666)
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(); //獲取收到的數(shù)據(jù)的實際長度
InetAddress adress=pack.getAddress();//獲取收到的數(shù)據(jù)的始發(fā)地址
int port=pack.getPort();//獲取收到的數(shù)據(jù)的始發(fā)端口
String message=new String(pack.getData(),0,length);
in_message.append("收到數(shù)據(jù)長度 "+length+"\n");
in_message.append(""+adress+"端口 "+port+"\n");
in_message.append("收到數(shù)據(jù)是 "+message+"\n");
}catch(Exception e){}
}
}
//點擊按扭發(fā)送數(shù)據(jù)
public void actionPerformed(ActionEvent event){
byte buffer[]=out_message.getText().trim().getBytes();
try{
InetAddress address=InetAddress.getByName("localhost");
//數(shù)據(jù)的目標端口是888(那么接收方需要在這個端口接收)
DatagramPacket pack=new DatagramPacket(buffer,buffer.length,address,888);
DatagramSocket mail_data=new DatagramSocket();
in_message.append("數(shù)據(jù)報目標主機地址:"+pack.getAddress()+"\n");
in_message.append("數(shù)據(jù)報目標端口是:"+pack.getPort()+"\n");
in_message.append("數(shù)據(jù)報長度:"+pack.getLength()+"\n");
mail_data.send(pack);
}catch(Exception e){}
}
}
public class B地{
public static void main(String arges[]){
shanghai_Frame shanghai_win=new shanghai_Frame();
shanghai_win.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
shanghai_win.pack();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -