sendmessage.java

来自「一个JAVA小程序!功能不小!」· Java 代码 · 共 86 行

JAVA
86
字号
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.net.ConnectException;
import java.net.Socket;
import java.net.UnknownHostException;

public class SendMessage {

  Socket sock;

  BufferedOutputStream outStream;

  BufferedReader consoleIn;

  SendMessage(String host, int port) 
    throws IOException, UnknownHostException {

    sock = new Socket(host, port);

    outStream = new BufferedOutputStream(sock.getOutputStream());
    byte[] buf = new byte[1024];
    
    consoleIn = new BufferedReader(new InputStreamReader(System.in));
  }

  public void sendMessage() throws IOException {
    System.out.print(">");
    System.out.flush();
    String message;
    message = consoleIn.readLine();
    outStream.write(message.getBytes(),0,message.length());
    outStream.flush();
    outStream.close();
  }

  public void shutDown() {
    try {
      sock.close();
    }
    catch (IOException e) {
      System.out.println("error closing socket");
      System.exit(0);
    }
  }

  public static void terminate(String errorMessage) {
    System.out.println(errorMessage);
    System.exit(0);
  }

  public static void main(String args[]) {
    SendMessage mySendMessage = null;
    int port = -1;
    if (args.length < 2)
      terminate("host and port required as arguments");

    try {
      port = Integer.parseInt(args[1]);
    }
    catch (NumberFormatException e) {
      terminate("port invalid");
    }
    try {
      mySendMessage = new SendMessage(args[0],port);
    }
    catch (UnknownHostException e) {
      terminate("UnknownHostException");
    }
    catch (IOException e) {
      System.out.println(e.getMessage());
      terminate("IOException");
    }

    try {
      mySendMessage.sendMessage();
    }
    catch (IOException e) {
      terminate("send failed");
    }
    mySendMessage.shutDown();
  }
}

⌨️ 快捷键说明

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