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

📄 datagramadditionserver.java

📁 java实现基于UDP的C/S架构的服务器客户端程序
💻 JAVA
字号:
import java.io.*;
import java.net.*;
import java.util.StringTokenizer;
public class DatagramAdditionServer {
	private int port;
	static final int DEFAULT_PORT =8189; //默认端口号
	DatagramAdditionServer(int port){
		this.port=port;
	}                                   //AdditionServer对象的构造函数将接收到的端口号存储
	public void run(){
		try{
			DatagramSocket ss=new DatagramSocket();//run方法以客户知道的预定端口号上创建数据报套接字
			System.out.println("等待连接..");
			byte[] buffer=new byte[256];//为第一个数据报请求的到来做准备,服务器为输入的请求分配缓冲区
			DatagramPacket inDgp=new DatagramPacket(buffer,buffer.length);//创建DatagramPacket对象
			String req,rsp;
			//do-while循环开始接受请求和返回响应的服务器循环
			do{
				ss.receive(inDgp);//接收数据报
				InetAddress senderAddress=inDgp.getAddress();//析取并保存发送请求的客户的地址和端口号
				int senderport=inDgp.getPort();
				req=new String(inDgp.getData(),0,inDgp.getLength());
				
				if(!req.equals("")){    //如果接收到非空的请求字符串,就开始处理请求
	
					rsp="我已收到你的消息!";
				   System.out.println(rsp);
					
					//确定响应字符串以后,创建输出对象DatagramPacket,然后讲响应和客户地址及端口一起放入其中。
					DatagramPacket outDgp=new DatagramPacket(rsp.getBytes(),rsp.length(),
							                                  senderAddress,senderport);
					ss.send(outDgp);
				}
				//当接收到包含空字符串的数据报时,服务器循环终止,关闭套接字,服务器结束
			}while(!req.equals(""));
			ss.close();
			
			
		}catch(IOException iox){
			System.out.println(iox);
			iox.printStackTrace();
		} 
	}
	public static void main(String[] args) {
		int port =DEFAULT_PORT;
		
		DatagramAdditionServer addServe=new DatagramAdditionServer(port);
		addServe.run();
		
	}


}

⌨️ 快捷键说明

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