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

📄 quoteserverthread.java

📁 电子工业出版社出版的《java2应用开发指南》配套光盘源代码
💻 JAVA
字号:
//【代码18-2-1】
// QuoteServerThread.java
import java.io.*;
import java.net.*;
import java.util.*;

public class QuoteServerThread extends Thread 
{
    private DatagramSocket socket = null;
    private DataInputStream in = null;
    private boolean moreQuotes = true;

    public QuoteServerThread() throws IOException 
{
        super("QuoteServerThread");
        socket = new DatagramSocket(1800);
	    try 
{
            in = new DataInputStream(new FileInputStream("one-liners.txt"));
	    }
catch (FileNotFoundException e) 
{
            System.err.println("Could not open quote file. Serving time instead.");
        }
    }

    public void run() 
{
        while (moreQuotes) 
{
            try 
{
                byte[] buf = new byte[256];
                // receive request
                DatagramPacket packet = new DatagramPacket(buf, buf.length);
                socket.receive(packet);
		    // figure out response
                String dString = null;
                if (in == null)
                    dString = new Date().toString();
                else
                    dString = getNextQuote();
                dString.getBytes(0, dString.length(), buf, 0);

                 // send the response to the client at "address" and "port"
                InetAddress address = packet.getAddress();
                int port = packet.getPort();
                packet = new DatagramPacket(buf, buf.length, address, port);
                socket.send(packet);
            } 
catch (IOException e) 
{
                e.printStackTrace();
		        moreQuotes = false;
            }
        }
	    socket.close();
    }

    private String getNextQuote() 
{
        String returnValue = null;
        try 
{
            if ((returnValue = in.readLine()) == null) 
{
                in.close();
		        moreQuotes = false;
                returnValue = "No more quotes. Goodbye.";
            }
        } 
catch (IOException e) 
{
            returnValue = "IOException occurred in server.";
        }
        return returnValue;
    }
}

⌨️ 快捷键说明

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