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

📄 receiver.java

📁 做了一大堆J2EE WEB应用之后
💻 JAVA
字号:
package net.udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

import net.datagram.PlayerInfo;

public class Receiver extends PlayProcessor{

	private DatagramPacket dataPacket = new DatagramPacket(new byte[255],255);
	private boolean loop =true;
	public Receiver(PlayerContext context) {
		super(context);
	}

	private void listen(){
		
		try {
			
			DatagramSocket datagramSocket = context.getDatagramSocket();
			datagramSocket.receive(dataPacket);
			String msg = new String(dataPacket.getData(), dataPacket.getOffset(), dataPacket.getLength());
			String serverName = context.getServerName();
			//System.out.println("request:"+msg+"\t"+dataPacket.getSocketAddress());
			if (msg.equals("request")) {
				
				if (serverName != null) {
					DatagramPacket send = new DatagramPacket(serverName.getBytes(), serverName.length());
					send.setSocketAddress(dataPacket.getSocketAddress());
					datagramSocket.send(send);
				
				}
				
			} else {
				
				PlayerInfo serverInfo = new PlayerInfo(msg, dataPacket.getSocketAddress(),null);
				if (!msg.equals(serverName)&& !context.contains(serverInfo)) {
					context.add(serverInfo);
				} else if (!dataPacket.getSocketAddress().equals(
						datagramSocket.getLocalSocketAddress())) {
					datagramSocket.send(dataPacket);
				}
			}

		} catch (IOException e) {
			//e.printStackTrace();
			System.out.println(e.getMessage());
		}
	}
	
	 

	@Override
	protected void process() {
		while (loop) {
			
			listen();
			
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
 
	public void close(){
		loop=false;
	}

}

⌨️ 快捷键说明

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