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

📄 computer_server.java

📁 了解UDP的通信原理
💻 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 + -