当前位置: 源码素材网 » Java教程 » 详情页

Java实现基于UDP 的discard 服务器端

  •   时间:2019-10-08
  • 概述:UDP discard 服务端

Java实现基于UDP 的discard 服务器端,基于 UDP 的discard 服务器端可以接收从客户端发送过来的数据包。本例通过编程实现了基于UDP 协议的discard 服务器端,为显示结果和发送的用户,本例通过System.out 显示了发送者和具体数据。运行程序,即可启动discard 服务器端:

实现方法:

在 main()方法中,从命令行中获得需要监听的端口,如果端口在命令行中没有特别指定,默认为9。在此端口上打开一个DatagramSocket 对象,创建一个带有65507 字节存储大小的DatagramPacket对象。通过一个无限循环获取各个服务器端发送过来的数据,并将此数据在控制台上显示出来。程序代码:

1.编写useUDPDiscardServer 类的基本框架,该类包括保存缺省端口的整型常量defaultport和保存包最大范围的整型常量maxpacketsize,该类还包括main()方法,在该方法中实现基于UDP 的discard 服务器端。

2.编写useUDPDiscardServer 类,代码如下:

import java.net.*;
import java.io.*;
public class useUDPDiscardServer
{
	//设置常量
  	public final static int defaultport = 9;
  	public final static int maxpacketsize = 65507;
	//主程序
  	public static void main(String[] args)
  	{
    		int port = defaultport;
    		byte[] buffer = new byte[maxpacketsize];
    		try
    		{
    			//获取端口
      			port = Integer.parseInt(args[0]);
    		}
    		catch (Exception e)
    		{
    			System.err.println("1");
    		}
    		try
    		{
    			//新建DatagramSocket对象
      			DatagramSocket server = new DatagramSocket(port);
      			//新建DatagramPacket对象
      			DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
      			//无限循环
      			while (true)
      			{
        			try
        			{
          				server.receive(packet);
          				String s = new String(packet.getData(), 0, packet.getLength());
          				System.out.println(packet.getAddress() + " at port "
           				+ packet.getPort() + " says " + s);
          	//重新设置下一个包的长度
          				packet.setLength(buffer.length);
        			}
        			catch (IOException e)
        			{
          				System.err.println("2");
        			}
       			} 
    		}
    		catch (SocketException se)
    		{
      			System.err.println("3");
    		}
  	}
}

    相关声明:

      若“Java实现基于UDP 的discard 服务器端”有损您的权益,请告之我们删除内容。
      部分文章来源于网络,版权归原作者所有。