📄 computer_server.java
字号:
import java.io.*;import java.net.*;
import java.util.*;import java.sql.*;
class UDPServerThread extends Thread{
//启动服务器线程的主程序
private DatagramPacket packet;
private DatagramSocket socket;
static final int sport=4331;
UDPServerThread(){
try{
socket=new DatagramSocket(sport);//将socket连接到本地端口4331
System.out.println("I am waitting....");
}
catch(Exception e ){System.out.println("错误"+e);}
}
public void run(){
//线程操作
if(socket==null) return;
while(true){
try{
InetAddress addr; int cport;
byte[] buffer1=new byte[1000]; byte[] buffer2=new byte[1000];
String s="数据报已经接受到";
packet=new DatagramPacket(buffer1,buffer1.length);//生成一个接收数据报
socket.receive(packet);//接收收据报
String s1=new String(packet.getData());
System.out.println("从客户端收到的数据是:"+s1);
addr=packet.getAddress();
cport=packet.getPort();
double a[]=new double[3] ;int i=0;
StringTokenizer fenxi=new StringTokenizer(s1," ,");
while(fenxi.hasMoreTokens())
{ String temp=fenxi.nextToken();
try{ a[i]=Double.valueOf(temp).doubleValue();i++;
}
catch(NumberFormatException e)
{
}
}
double p=(a[0]+a[1]+a[2])/2.0;
Double result=new Double(Math.sqrt(p*(p-a[0])*(p-a[1])*(p-a[2])));
String bytes=new String(result.toString());
buffer2=bytes.getBytes();
packet=new DatagramPacket(buffer2,buffer2.length,addr,cport);//生成发送的数据报
socket.send(packet);
sleep(2);
}
catch(Exception ee){}
}
}
protected void finalize(){
if(socket!=null){
socket.close();//关闭socket
System.out.println("连接已经关闭");
}
}
}
public class Computer_server{
public static void main(String[] argc){
UDPServerThread server=new UDPServerThread();
server.start();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -