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

📄 datagramsserver.java

📁 JAVA类库参考手册
💻 JAVA
字号:
import java.io.*;import java.net.*;import java.util.*;public class DatagramsServer {  public static void main(String[] args) throws IOException {    new QuoteServerThread("SingleServerThread").start();  }}class QuoteServerThread extends Thread {  protected DatagramSocket socket = null;  //创建DatagramSocket类  protected BufferedReader in = null;      //创建文件写入类  protected boolean moreQuotes = true;     //标识listwords文件是否还有语句  public QuoteServerThread(String title) throws IOException {    super(title);    socket = new DatagramSocket(8888);  //为DatagramSocket类创建8888端口    try {      //创建文件读入类,读入listwords.txt文件的内容      in = new BufferedReader(new FileReader("listwords.txt"));    } catch (FileNotFoundException e) {      System.err.println("不能打开文件");    }  }  public void run() {    while (moreQuotes) {      try {        byte[] buf = new byte[200];        //使用byte数组创建数据包        DatagramPacket packet = new DatagramPacket(buf, buf.length);        //使用socket接口接收客户端的数据包        socket.receive(packet);        //创建dString字符串读取文件的内容        String dString = null;        if (in == null)          dString = new Date().toString();        else          dString = getNextQuote();  //使用getNextQuote()方法获取文件的内容        buf = dString.getBytes();    //将字符串转为Bytes()数组        //根据接收的数据包获取网络地址与端口        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();  //关闭Datagram接口  }  //读取文件内容的方法  protected String getNextQuote() {    String returnValue = null;    try {      //读入文件内容      if ((returnValue = in.readLine()) == null) {        //如果到了文件的结尾,返回下面的语句        in.close();        moreQuotes = false;               //退出发送信息的循环        returnValue = "不要泄气,继续努力.";      }    } catch (IOException e) {      returnValue = "在服务端有错误产生.";   //产生异常时,返回这句话    }    return returnValue;  }}

⌨️ 快捷键说明

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