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

📄 udpserver.java

📁 贪食蛇的实现源码
💻 JAVA
字号:
package com.henry.networkings;

import java.io.*;
import java.net.*; 
import java.util.*; 

public class UDPServer{ 

   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); 
        } 
    } 

    //This method retrieves the current time on the server 
    public byte[] getTime(){ 
        Date d= new Date(); 
        return d.toString().getBytes(); // String -> byte[]
    } 

   // Main server loop. 
    public void go() throws IOException { 
        DatagramSocket datagramSocket=null; 

        DatagramPacket inDataPacket=null; // Datagram packet from the client 

        DatagramPacket outDataPacket=null; // Datagram packet to the client 

        InetAddress clientAddress=null; // Client return address 

        int clientPort; // Client return port 
        byte[] msg= new byte[10]; // Incoming data buffer. Ignored. 
        byte[] time; // Stores retrieved time 
  
        // 1.  create datagram socket to allocate a socket to a port for requests. 
         datagramSocket = new DatagramSocket(9000); //port 8000
         System.out.println("!!at UDPServer localport is: " + datagramSocket.getLocalPort()); 
          
        while(true) { 
            // 2. Set up receiver packet. 
            inDataPacket = new DatagramPacket(msg, msg.length); 

            // 3. get data packet from client
            datagramSocket.receive(inDataPacket);

            // 4. Retrieve incoming packet's address information 获得对方的地址
            clientAddress = inDataPacket.getAddress(); 
            clientPort = inDataPacket.getPort(); 
            System.out.println("client HostAddress is: "+clientAddress.getHostAddress()+ " clientPort is : "+ clientPort  ); 
            
            time = getTime();   // call getTime() to get bytes of the current time from operating System.
  
            //5. set up a datagram to be sent to the client
            outDataPacket = new DatagramPacket(time, time.length, clientAddress, clientPort); 
  
            //6. finally send the packet to client 
            datagramSocket.send(outDataPacket); 
        } 
         
    } 
  
    
 } 

⌨️ 快捷键说明

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