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

📄 computer_client.java

📁 了解UDP的通信原理
💻 JAVA
字号:
import java.net.*;
import java.io.*;
import java.awt.*;import java.awt.event.*;
import java.applet.*;
import java.util.*;
public class Computer_client extends Applet implements Runnable,ActionListener{
	Button 计算;TextField 输入三边长度文本框,计算结果文本框;
	//DataInputStream in=null; DataOutputStream out=null;
	DatagramSocket socket;//用于发送/接收UDP;
	DatagramPacket packet,packet1;//用于保存UDP内容;
	byte[] buffer1=new byte[1000]; 
        byte[] buffer2=new byte[1000];
	Thread thread;
 	InetAddress addr;
	public void init()
	{  setLayout(new GridLayout(2,2));
	   Panel p1=new Panel(),p2=new Panel(); 
	   计算=new Button(" 计算");
	   输入三边长度文本框=new TextField(12);计算结果文本框=new TextField(12);
	   p1.add(new Label("输入三角形三边的长度,用逗号或空格分隔:"));
	   p1.add( 输入三边长度文本框);
	   p2.add(new Label("计算结果:"));p2.add(计算结果文本框);p2.add(计算);
	   计算.addActionListener(this);
	   add(p1);add(p2);
	   //this.setSize(200,300);
	   //this.setVisible(true);
	}
	
	public void start()
	{  
	   try
	      {  //和小程序所驻留的服务器建立UDP连接:
	         socket=new DatagramSocket(1234);
	         //packet=new DatagramPacket(buffer1,buffer1.length,"127.0.0.1",4331);
	      } 
	   catch (IOException e){}
	   if(thread == null)
	     {  thread = new Thread(this);
	        thread.start();
	     }
	}
	
	     
	public void run()
	{  String s=null;
	   while(true)
	    {    try{ 
	    		//thread.sleep(1000);//使线程等待一段时间,以便服务器进行计算 
	    		packet1=new DatagramPacket(buffer2,buffer2.length);//生成接收的packet;
	    		socket.receive(packet1);//接受服务器传来的packet;
		       s=new String(packet1.getData());
		       if(s.equals(输入三边长度文本框.getText()))
		       计算结果文本框.setText("计算中,请再按次...");
		       else
		       计算结果文本框.setText(s);
	            }
	        catch(Exception e) {
		计算结果文本框.setText("与服务器已断开");
		break;
		}
	}
	}
	public void actionPerformed(ActionEvent e)
	{  if(e.getSource()==计算)
	   {  String s=输入三边长度文本框.getText();
	      if(!s.equals(""))  //这个地方源程序有问题
	        {  
	        	buffer1=s.getBytes();
	        	
	        	try{
	        	addr=InetAddress.getLocalHost();
	        	packet=new DatagramPacket(buffer1,buffer1.length,addr,4331);
	        	socket.send(packet); //向服务器发送packet;
	        	}
	        	catch(Exception ee){System.out.println("向服务器发送数据报失败!");};
	        	
	        }
	      else
	      	计算结果文本框.setText("请输入内容!");
	                     
	  }
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -