⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 udpsend.java

📁 有关JAVA的SOCKET通讯的源码,主要是基本的通用的代码格式
💻 JAVA
字号:
package socket.test.udp;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

import java.net.*;
import java.awt.*;
import java.awt.event.*;
class SendFrame2 extends Frame implements Runnable,ActionListener
{  TextField out_message=new TextField("我是数据包的真正内容");
   TextArea in_message=new TextArea();
   Button b=new Button("开始发送数据包");
   Button b2=new Button("停\n止\n发\n送\n");
   Thread thread=new Thread(this);
   SendFrame2()
   {  super("UDP自动发送");
      setSize(200,200);
          setVisible(true);
      b.addActionListener(this);
      b2.addActionListener(this);
      b.setBackground(Color.cyan);
      b2.setBackground(Color.cyan);
      in_message.setBackground(Color.green);
      add(out_message,"South");
          add(in_message,"Center");
          add(b,"North");
          add(b2,"East");


   }

 //--------------------------------点击按扭控制发送数据包或停止发送-----------------------------------------//

   public void actionPerformed(ActionEvent event)
   {
     if(event.getSource()==b)
     {
       if(!(thread.isAlive()))
                        {  thread=new Thread(this);
              }

          try {  thread.start();
              }

          catch(Exception e1)
              {
                in_message.setText("");
                in_message.append("先点停止按钮后才能再点击开始发送按钮!");
              }

     }
     else if(event.getSource()==b2)
     {
          thread.interrupt();
          in_message.setText("");
          in_message.append("已停止!");
                      //thread.yield();
                      //thread=null;
     }
   }

//-------------------------------------run函数用于发送数据报-----------------------------------------//

   public void run()
   {  byte buffer[]=out_message.getText().trim().getBytes();//这句是从文本框里取得要发送内容
      try{  InetAddress address=InetAddress.getByName("hdyx-jxq");//对方的IP或主机名
           //数据包的目标端口是888(那么收方(北京)需在这个端口接收):
            DatagramPacket data_pack=new DatagramPacket(buffer,buffer.length, address,3700);
            DatagramSocket mail_data=new DatagramSocket();
            Thread thread=new Thread(this);
            int i=0;
            while(true)
            {
              i++;
              in_message.append("正在发送第"+i+"次数据...\n");
              in_message.append("发送端地址:" + data_pack.getAddress() + "\n"); //是自己的IP
              in_message.append("发送端端口:" + data_pack.getPort() + "\n");
              in_message.append("数据报长度:" + data_pack.getLength() + "\n");
              in_message.append("发送内容:"+new String(data_pack.getData())+"\n");
              mail_data.send(data_pack); //发送
              thread.sleep(2000);
            }
          }
      catch(Exception e){}

                  }

}
public class UDPSend
{  public static void main(String args[])
   {  SendFrame2 shanghai_win=new SendFrame2();
      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 + -