/**
*Title:TestUDPClient_10.java
*Description:1、用UDP发送数据包。2、把Long型的值以字节的形式写输出流,并返回给字节数组。
*@Copyright:
*@Company:
*@autor:firefly
*@version:1.0
*@time:2012.10.1
*/
import java.net.*;
import java.io.*;
public class TestUDPClient_10 {
public static void main(String[] args) throws Exception {
Long n = 10000L;
ByteArrayOutputStream baos = new ByteArrayOutputStream();//把Long类型的数写到内存的字节数组中去。
DataOutputStream dos = new DataOutputStream(baos);//只有DataOutputStream才能向外直接写一个Long类型的数。
dos.writeLong(n);//将一个 long 值以 8-byte 值形式写入基础输出流中,先写入高字节。
byte[] buf = baos.toByteArray();//返回的是一个字节数组。
//byte[] buf = (new String("Hello")).getBytes();//(另一个函数,没有15—19行)把一个字符串解析成为一个字符数组。
DatagramPacket dp = new DatagramPacket(buf, buf.length, new InetSocketAddress("183.169.231.241", 5678));//InetSocketAddress("183.169.231.241", 5678)代表网络上一个地址,包括一个IP地址和端口。UDP本身没有连接,路由器必须知道每一个包要发时哪里去,它才会选择路由。你必须告诉它。
DatagramSocket ds = new DatagramSocket(9999);//指Client本身占着9999这个端口。
ds.send(dp);//从此套接字发送数据报包.
ds.close();
}
}