📄 udpseverservice.java
字号:
import java.io.*;
import java.net.*;
public class udpSeverService
{
public static void main(String args[])
{
/*if(args.length<1)
{
System.out.println("请输入用于MAIL服务的本地端口号");
System.exit(0);
}*/
UdpServerThread MyUdpServer=new UdpServerThread(8000);
MyUdpServer.start();
}
}
class UdpServerThread extends Thread
{
private DatagramSocket UdpServerSocket=null;
public UdpServerThread(int port)
{
try{
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()+":\nMailServer"+InetAddress.getLocalHost().getHostName()+"has already get your mails.");
for(int i=0;i<512;i++)
dataBuf[i]=0;//clear buf
Datagram=new String("This mail is from serverhost"+InetAddress.getLocalHost().getHostName()+",give me a reicept\nif you can receive it,thank you!");
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 + -