senderthread.java

来自「javaUdp java udp编程」· Java 代码 · 共 57 行

JAVA
57
字号
//package chat;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class SenderThread extends Thread {

  private InetAddress server;
  private DatagramSocket socket;
  private boolean stopped = false;
  private int port;
  
  public SenderThread(InetAddress address, int port) 
   throws SocketException {
    this.server = address;
    this.port = port;
    this.socket = new DatagramSocket();
    this.socket.connect(server, port);
  }
  
  public void halt() {
    this.stopped = true; 
  }
  
  public DatagramSocket getSocket() {
    return this.socket; 
  }

  public void run() {

    try {
      BufferedReader userInput 
       = new BufferedReader(new InputStreamReader(System.in));
      while (true) {
        if (stopped) return;
        String theLine = userInput.readLine();
        if (theLine.equals(".")) break;
        byte[] data = theLine.getBytes();
        DatagramPacket output 
         = new DatagramPacket(data, data.length, server, port);
        socket.send(output);
        Thread.yield();
      }
    }  // end try
    catch (IOException ex) {
      System.err.println(ex);
    }

  }  // end run

}

⌨️ 快捷键说明

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