您的位置:首页 > 其它

UDP课本例题partB

2010-04-21 11:16 239 查看
/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package UDP;

import java.net.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class B extends JFrame implements Runnable,ActionListener{

JTextField outMessage=new JTextField(12);

JTextArea inMessage=new JTextArea(12,20);

JButton b=new JButton("发送数据");

B(){

super("I AM B");

setBounds(350,100,320,200);

setVisible(true);

JPanel p =new JPanel();

b.addActionListener(this);

p.add(outMessage);

p.add(b);

Container con=getContentPane();

con.add(new JScrollPane(inMessage),BorderLayout.CENTER);

con.add(p,BorderLayout.NORTH);

Thread thread = new Thread(this);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

validate();

thread.start();

}

public void actionPerformed(ActionEvent event){

byte b[]=outMessage.getText().trim().getBytes();

try{

InetAddress address=InetAddress.getByName("222.17.97.194");

DatagramPacket data = new DatagramPacket(b,b.length,address,5678);

DatagramSocket mail = new DatagramSocket();

mail.send(data);

}

catch(Exception e){}

}

public void run(){

DatagramPacket pack=null;

DatagramSocket mail=null;

byte b[]=new byte[8192];

try{

pack=new DatagramPacket(b,b.length);

mail=new DatagramSocket(1234);

}

catch(Exception e){}

while(true){

try{

mail.receive(pack);

String message=new String(pack.getData(),0,pack.getLength());

inMessage.append("收到数据来自:"+pack.getAddress());

inMessage.append("/n收到数据是:"+message+"/n");

inMessage.setCaretPosition(inMessage.getText().length());

}

catch(Exception e){}

}

}

public static void main(String args[]){

new B();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: