?? udpserver.java
字號:
//UdpServer.java
import java.io.*;
import java.net.*;
import java.util.*;
public class UdpServer{
//這個函數得到當前服務器上的時間
public byte[] getTime(){
Date d= new Date();
return d.toString().getBytes();
}
//服務器的消息循環
public void go() throws IOException {
DatagramSocket datagramSocket;
//從客戶端得到的數據包
DatagramPacket inDataPacket;
//向客戶端發送的數據包
DatagramPacket outDataPacket;
//客戶端返回的地址
InetAddress clientAddress;
//客戶端返回的端口
int clientPort;
//下一個數據包
byte[] msg= new byte[10];
//存放得到的時間
byte[] time;
//在8000端口生成一個主套接字
datagramSocket = new DatagramSocket(8000);
System.out.println("UDP server active on port 8000");
// 循環等待
while(true) {
//設置接收到的數據包,數據將被忽略
inDataPacket = new DatagramPacket(msg, msg.length);
//接收數據
datagramSocket.receive(inDataPacket);
// 得到客戶端的地址和端口
clientAddress = inDataPacket.getAddress();
clientPort = inDataPacket.getPort();
//得到當前時間.
time = getTime();
//設置要發送的數據包
outDataPacket = new DatagramPacket
(time, time.length, clientAddress, clientPort);
//最后,發送數據包
datagramSocket.send(outDataPacket);
}
}
//主函數
public static void main(String args[]) {
UdpServer udpServer = new UdpServer();
try {
udpServer.go();
} catch (IOException e) {
System.out.println ("IOException occured with socket.");
System.out.println (e);
System.exit(1);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -