?? mixedcastserver.java
字號:
/* * Java Network Programming, Second Edition * Merlin Hughes, Michael Shoffner, Derek Hamner * Manning Publications Company; ISBN 188477749X * * http://nitric.com/jnp/ * * Copyright (c) 1997-1999 Merlin Hughes, Michael Shoffner, Derek Hamner; * all rights reserved; see license.txt for details. */import java.io.*;
import java.net.*;
public class MixedcastServer {
public static void main (String[] args) throws IOException {
if ((args.length != 2) || (args[1].indexOf (":") < 0))
throw new IllegalArgumentException
("Syntax: MixedcastServer <server port> <group>:<port>");
int serverPort = Integer.parseInt (args[0]);
int idx = args[1].indexOf (":");
InetAddress group = InetAddress.getByName (args[1].substring (0, idx));
int port = Integer.parseInt (args[1].substring (idx + 1));
init (serverPort, group, port);
while (true) {
relay ();
}
}
protected static DatagramSocket inSocket;
protected static MulticastSocket outSocket;
protected static DatagramPacket incoming, outgoing;
protected static void init (int serverPort, InetAddress group, int port) throws IOException {
inSocket = new DatagramSocket (serverPort);
outSocket = new MulticastSocket ();
outSocket.setTimeToLive (1);
byte[] buffer = new byte[65508];
incoming = new DatagramPacket (buffer, buffer.length);
outgoing = new DatagramPacket (buffer, buffer.length, group, port);
}
protected static void relay () throws IOException {
incoming.setLength (incoming.getData ().length);
inSocket.receive (incoming);
outgoing.setLength (incoming.getLength ());
outSocket.send (outgoing);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -