?? udpclient.java
字號(hào):
import java.awt.*;
import java.net.*;
import java.io.*;
import java.util.*;
/**
* Description:
* <br/>Copyright (C), 2008-2010, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Yeeku.H.Lee kongyeeku@163.com
* @version 1.0
*/
public class UdpClient
{
//定義發(fā)送數(shù)據(jù)報(bào)的目的地
public static final int DEST_PORT = 30000;
public static final String DEST_IP = "127.0.0.1";
//定義每個(gè)數(shù)據(jù)報(bào)的最大大小為4K
private static final int DATA_LEN = 4096;
//定義該客戶(hù)端使用的DatagramSocket
private DatagramSocket socket = null;
//定義接收網(wǎng)絡(luò)數(shù)據(jù)的字節(jié)數(shù)組
byte[] inBuff = new byte[DATA_LEN];
//以指定字節(jié)數(shù)組創(chuàng)建準(zhǔn)備接受數(shù)據(jù)的DatagramPacket對(duì)象
private DatagramPacket inPacket =
new DatagramPacket(inBuff , inBuff.length);
//定義一個(gè)用于發(fā)送的DatagramPacket對(duì)象
private DatagramPacket outPacket = null;
public void init()throws IOException
{
try
{
//創(chuàng)建一個(gè)客戶(hù)端DatagramSocket,使用隨機(jī)端口
socket = new DatagramSocket();
//初始化發(fā)送用的DatagramSocket,它包含一個(gè)長(zhǎng)度為0的字節(jié)數(shù)組
outPacket = new DatagramPacket(new byte[0] , 0 ,
InetAddress.getByName(DEST_IP) , DEST_PORT);
//創(chuàng)建鍵盤(pán)輸入流
Scanner scan = new Scanner(System.in);
//不斷讀取鍵盤(pán)輸入
while(scan.hasNextLine())
{
//將鍵盤(pán)輸入的一行字符串轉(zhuǎn)換字節(jié)數(shù)組
byte[] buff = scan.nextLine().getBytes();
//設(shè)置發(fā)送用的DatagramPacket里的字節(jié)數(shù)據(jù)
outPacket.setData(buff);
//發(fā)送數(shù)據(jù)報(bào)
socket.send(outPacket);
//讀取Socket中的數(shù)據(jù),讀到的數(shù)據(jù)放在inPacket所封裝的字節(jié)數(shù)組里。
socket.receive(inPacket);
System.out.println(new String(inBuff , 0 ,
inPacket.getLength()));
}
}
//使用finally塊保證關(guān)閉資源
finally
{
if (socket != null)
{
socket.close();
}
}
}
public static void main(String[] args)
throws IOException
{
new UdpClient().init();
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -