broadcasterclient.java

来自「java 完全探索的随书源码」· Java 代码 · 共 103 行

JAVA
103
字号
import java.io.*;import java.net.*;import java.util.*;import java.text.*;public class BroadcasterClient extends Thread{  // Set a default listener port  private int listenerPort = 59;  private DatagramSocket listenerSocket = null;  private static int MAX_PACKET_SIZE = 1000;  // Default Constructor  public BroadcasterClient()  {    super();  }  // Alternate Constructor to Override Port  public BroadcasterClient( int newPort )  {    // overide port setting    listenerPort = newPort;  }  public void run()  {    byte[] buffer = new byte[ MAX_PACKET_SIZE ];    // Create a packet to hold the data when it arrives    DatagramPacket infoPacket = new DatagramPacket( buffer, MAX_PACKET_SIZE );    try    {      listenerSocket = new DatagramSocket( this.listenerPort );    }    catch( Exception ex )    {      System.out.println( "Problem creating socket on port: " + listenerPort );      System.exit( -1 );    }    // do an infinite loop    while( true )    {      try      {        System.out.println( "Waiting on broadcasts..." );        // Setting this value to 0 causes it to be an infinite timeout        listenerSocket.setSoTimeout( 0 );        listenerSocket.receive( infoPacket );        // What address sent the packet        InetAddress fromAddress = infoPacket.getAddress();        // Get the message within the packet        byte[] msg = infoPacket.getData();        System.out.println( "Received broadbast from " + fromAddress );        System.out.println( new String(msg) );      }      catch( IOException ex )      {        // Print the exception and try to keep going        ex.printStackTrace();      }    }  }  public static void main( String[] args )  {    BroadcasterClient client = null;    int argLength = args.length;    // Make sure the correct number of args were passed    if ( argLength > 1 )    {      System.out.println( "Usage: java BroadcasterClient <port>" );      System.exit( 0 );    }    if ( argLength == 0 )      client = new BroadcasterClient();    if ( argLength == 1 )    {      int port = 0;      String arg = args[0];      try      {        port = Integer.parseInt( arg );      }      catch( Exception ex )      {        System.out.println( "Invalid port specified on the command line:arg" );        System.exit( -1 );      }      client = new BroadcasterClient( port );    }    // Listen for messages    client.start();  }}

⌨️ 快捷键说明

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