⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 udpclient.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
字号:
// Copyright (c) 2005 Brian Wellington (bwelling@xbill.org)package org.xbill.DNS;import java.io.*;import java.net.*;import java.nio.*;import java.nio.channels.*;final class UDPClient extends Client {publicUDPClient(long endTime) throws IOException {	super(DatagramChannel.open(), endTime);}voidconnect(SocketAddress addr) throws IOException {	DatagramChannel channel = (DatagramChannel) key.channel();	channel.connect(addr);}voidsend(byte [] data) throws IOException {	DatagramChannel channel = (DatagramChannel) key.channel();	verboseLog("UDP write", data);	channel.write(ByteBuffer.wrap(data));}byte []recv(int max) throws IOException {	DatagramChannel channel = (DatagramChannel) key.channel();	byte [] temp = new byte[max];	key.interestOps(SelectionKey.OP_READ);	try {		while (!key.isReadable())			blockUntil(key, endTime);	}	finally {		if (key.isValid())			key.interestOps(0);	}	long ret = channel.read(ByteBuffer.wrap(temp));	if (ret <= 0)		throw new EOFException();	int len = (int) ret;	byte [] data = new byte[len];	System.arraycopy(temp, 0, data, 0, len);	verboseLog("UDP read", data);	return data;}static byte []sendrecv(SocketAddress addr, byte [] data, int max, long endTime)throws IOException{	UDPClient client = new UDPClient(endTime);	try {		client.connect(addr);		client.send(data);		return client.recv(max);	}	finally {		client.cleanup();	}}}

⌨️ 快捷键说明

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