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

📄 udpserverservice.java

📁 一个JAVA做的简单的聊天程序
💻 JAVA
字号:
import java.io.*;
import java.net.*;
public class UDPServerService
{
	public static void main(String args[])
  	{
		if(args.length<1)
		{
			System.out.println("请输入用于mail服务的本地端口号");
			System.exit(0);
		}
		UDPServerThread MyUDPServer=new UDPServerThread(Integer.parseInt(args[0]));//创建邮件服务器监听线程
		MyUDPServer.start(); //启动线程
	}
}

class UDPServerThread extends Thread
{
	private DatagramSocket UDPServerSocket=null;
	public UDPServerThread(int Port) //构造函数
 	{
		try{ //创建服务器端收发UDP的DatagramSocket对象,在Port端口收发UDP
		UDPServerSocket=new DatagramSocket(Port);
		System.out.println("邮件服务监听器在端口"+UDPServerSocket.getLocalPort()+"\n");
		}catch(Exception e)
		{
			System.err.println(e);
		}
	}
public void run()
{
	if(UDPServerSocket==null)
	  return;
	while(true)
	{
		try{
		    byte dataBuf[]=new byte[512];//保存数据报的字节数组
	  	    DatagramPacket ServerPacket;
		    InetAddress RemoteHost;
		    int RemotePort;
		    String Datagram,s;
		    ServerPacket=new DatagramPacket(dataBuf,512);
		    UDPServerSocket.receive(ServerPacket);
		    RemoteHost=ServerPacket.getAddress();
		    RemotePort=ServerPacket.getPort();
		    Datagram=new String(ServerPacket.getData());
		    System.out.println("收到如下主机发来的邮件"+RemoteHost.getHostName()+":\n "+Datagram);
		    Datagram=new String(RemoteHost.getHostName()+":\n MailServer"+InetAddress.getLocalHost().getHostName()+
		 	" has already get your mails.");
		   for(int i=0;i<512;i++) dataBuf[i]=0;
		    Datagram.getBytes(0,Datagram.length(),dataBuf,0);
		    ServerPacket=new DatagramPacket(dataBuf,dataBuf.length,RemoteHost,RemotePort);
		    UDPServerSocket.send(ServerPacket);
		}catch(Exception e){
					System.err.println(e);
				   }
	}
}

protected void finalize()
{
	if(UDPServerSocket!=null)
	{
		UDPServerSocket.close();
		UDPServerSocket=null;
		System.out.println("关闭服务器的数据报连接");
	}
}
}

⌨️ 快捷键说明

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