📄 computer_client.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 + -