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

📄 udpservertest.java

📁 《Java程序设计与应用》-张仕斌-源程序 《Java程序设计与应用》-张仕斌-源程序
💻 JAVA
字号:
//UDPServerTest.java
import java.io.*;
import java.net.*;

public class UDPServerTest {
	public static void main(String[]args) {
		DatagramSocket svrSocket = null;  //服务器端UDP
		DatagramPacket svrPacket = null;  //收到和发送数据报
		InetAddress rmtHost = null;       //远程主机
		int localPORT = 6789;             //本地端口
		int rmtPort;                      //远程主机端口
		String strData;                   //接收和发送数据
		byte[] buffer = new byte[512];    //以字节数组发送
		
		if (args.length > 0) {     //如果指定服务器监听端口
			try {
				localPORT = Integer.parseInt(args[0]);
			}catch(Exception e) {
				System.out.println("端口必须是数字");
				return;
			}
		}
		
		try {                      //创建服务器端UDP Socket
			svrSocket = new DatagramSocket(localPORT);
			System.out.println("Server listening...");
		}catch(IOException e) {
			e.printStackTrace();
		}
		
		try {
			svrPacket = new DatagramPacket(buffer , 512); //创建数据包对象
			svrSocket.receive(svrPacket);                //接收数据包
			rmtHost = svrPacket.getAddress();            //读取数据包的发送主机
			rmtPort = svrPacket.getPort();               //读取远程主机端口
			strData = new String(svrPacket.getData());   //读取发送数据
			
			System.out.println("收到远程主机[" + 
				rmtHost.getHostName() + "]信息:" + strData);  //显示
			
			strData = new String("Information received!");  //要响应的信息
			for (int i = 0; i < buffer.length ; i++) {      //清空字节数组
				buffer[i] = 0;
			}
			strData.getBytes(0 , strData.length() , buffer , 0); //字符串到字节数组
			svrPacket = new DatagramPacket(buffer , 
				buffer.length , rmtHost , rmtPort);               //创建要发送的数据包对象
			svrSocket.send(svrPacket);                          //发送到客户的响应信息
		}catch(IOException e) {
			e.printStackTrace();
		}
		
		svrSocket.close();     //关闭
	}
}

⌨️ 快捷键说明

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