datagramreceiver.java
来自「21天学通java的示例程序源代码」· Java 代码 · 共 64 行
JAVA
64 行
package com.wrox.datagram;
import java.net.*;
import java.util.*;
import java.io.*;
import java.nio.*;
import java.nio.charset.*;
import java.nio.channels.*;
import java.nio.channels.spi.*;
public class DatagramReceiver
{
// Define my favorite default port. Just look at a phone ;)
private static final int DEFAULT_PORT = 7236;
public static void main(String[] args)
{
int port = DEFAULT_PORT;
if( args.length > 0 )
{
try
{
port = Integer.parseInt( args[0] );
}
catch( NumberFormatException nfe )
{
System.err.println( "Syntax: java DatagramServer [port " +
" number to accept connections on.]" );
System.exit( 1 );
}
}
try
{
DatagramChannel channel = DatagramChannel.open( port );
System.out.println( "Listening for datagrams..." );
while( true )
{
ByteBuffer buffer = ByteBuffer.allocate( 512 );
SocketAddress sender = channel.receive( buffer );
if( sender != null )
{
buffer.flip();
System.out.println( "Message from: " + sender );
// decode a message
Charset charset = Charset.forName("ISO-8859-1");
CharsetDecoder decoder = charset.newDecoder();
CharBuffer message = decoder.decode( buffer );
System.out.println( "received: " + message );
}
}
}
catch( IOException ioe )
{
System.err.println( "Error: " + ioe );
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?