📄 broadcasterclient.java
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -