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

📄 servertest.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 Test_Frame extends Frame implements Runnable,ActionListener{  TextField out_message=new TextField("接受终端数据...");   TextArea in_message=new TextArea();   Button b=new Button("开始接受UDP数据包");   Button b2=new Button("停止接受");   Thread thread=new Thread(this);   Test_Frame()   {  super("我是服务者");      setSize(200,200);          setVisible(true);      b.addActionListener(this);      b2.addActionListener(this);      b.setBackground(Color.cyan);      b2.setBackground(Color.cyan);      in_message.setForeground(Color.red);      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();       thread.currentThread().interrupt();       in_message.setText("");       in_message.append("已停止!");       //thread.yield();     }   }//-------------------------------------run函数捕获数据报-----------------------------------------//   public void run()   {  DatagramPacket pack=null;      DatagramSocket mail_data=null;      byte data[]=new byte[8192];     try{            pack=new DatagramPacket(data,data.length);           //使用端口666来接收数据包(因为北京发来的数据报的目标端口是666)。            mail_data=new DatagramSocket(3700);//这是对方的端口号            // DatagramPacket data_pack=new DatagramPacket(buffer,buffer.length, address,3700);         }      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 ServerTest{  public static void main(String args[])   {  Test_Frame shanghai_win=new Test_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 + -