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

📄 datagramserverstring.java~3~

📁 jbuilder2006一书的所有源代码
💻 JAVA~3~
字号:
package datagrams;import java.io.*;import java.net.*;import java.util.*;public class DatagramsServerString {  public static void main(String[] args) throws IOException {    new QuoteServerThread("serverThread").start();  }}class QuoteServerThread extends Thread {  //创建DatagramSocket类  protected DatagramSocket datagramSocket = null;  //创建文件读入类  protected BufferedReader in = null;  //标识words文件是否还有语句  protected boolean moreQuotes = true;  public QuoteServerThread(String title) throws IOException {    super(title);    //为DatagramSocket类创建5555端口    datagramSocket = new DatagramSocket(5555);    try {      //创建文件读入类,读入words.txt文件的内容      in = new BufferedReader(new FileReader("words.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);        //使用DatagramSocket接口接收客户端的数据包        datagramSocket.receive(packet);        //创建dString字符串读取文件的内容        String dString = null;        if (in == null)          dString = new Date().toString();        else          //使用getNextQuote()方法获取文件的内容          dString = getNextQuote();        //将字符串转为Bytes()数组        buf = dString.getBytes();        //根据接收的数据包获取网络地址与端口        InetAddress address = packet.getAddress();        int port = packet.getPort();        //重新创建带有网络地址与端口的数据包        packet = new DatagramPacket(buf, buf.length, address, port);        //根据数据包的地址与端口发送数据包        datagramSocket.send(packet);      }      catch (IOException e) {        e.printStackTrace();        //当发生异常时,退出发送信息循环        moreQuotes = false;      }    }    //关闭Datagram接口    datagramSocket.close();  }  //读取文件内容的方法  protected String getNextQuote() {    String returnValue = null;    try {      //读入文件内容      if ( (returnValue = in.readLine()) == null) {        //如果到了文件的结尾,返回下面的语句        in.close();        //退出发送信息的循环        moreQuotes = false;        returnValue = "完成信息发送.";      }    }    catch (IOException e) {      //产生异常时,返回这句话      returnValue = "产生发送信息错误.";      e.printStackTrace();    }    //返回文件的内容    return returnValue;  }}

⌨️ 快捷键说明

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