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

📄 transactionclient.java

📁 java网络编程方面的源码,其中有一个整合的聊天室,比较不错,建议大家下载练习,配合java网络编程技术内幕看
💻 JAVA
字号:
/* * Java Network Programming, Second Edition * Merlin Hughes, Michael Shoffner, Derek Hamner * Manning Publications Company; ISBN 188477749X * * http://nitric.com/jnp/ * * Copyright (c) 1997-1999 Merlin Hughes, Michael Shoffner, Derek Hamner; * all rights reserved; see license.txt for details. */import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;

public class TransactionClient implements ActionListener, Runnable {
  protected String host;
  protected int port;
  
  public TransactionClient (String host, int port) {
    this.host = host;
    this.port = port;
    initAWT ();
  }

  protected Frame frame;
  protected Button get, put;
  protected TextField attr, value;
  
  protected void initAWT () {
    frame = new Frame ("Transaction Client");
    attr = new TextField (24);
    value = new TextField (24);
    get = new Button ("get");
    get.addActionListener (this);
    put = new Button ("put");
    put.addActionListener (this);
    frame.setLayout (new GridLayout (2, 2));
    frame.add (attr);
    frame.add (value);
    frame.add (get);
    frame.add (put);
    frame.pack ();
  }

  protected MessageInputStream messageIn;
  protected MessageOutputStream messageOut;
  protected Thread listener;
  
  public void start () throws IOException {
    Socket socket = new Socket (host, port);
    messageIn = new MessageInputStream (socket.getInputStream ());
    messageOut = new MessageOutputStream (socket.getOutputStream ());
    frame.setVisible (true);
    listener = new Thread (this);
    listener.start ();
  }

  public void run () {
    try {
      while (true) {
        messageIn.receive ();
        System.out.print ("attr: " + messageIn.readUTF ());
        System.out.println (" value: " + messageIn.readUTF ());
      }
    } catch (IOException ex) {
      ex.printStackTrace ();
    }
  }

  public void actionPerformed (ActionEvent event) {
    try {
      if (event.getSource () == get) {
        messageOut.writeUTF ("get");
        messageOut.writeUTF (attr.getText ());
      } else if (event.getSource () == put) {
        messageOut.writeUTF ("put");
        messageOut.writeUTF (attr.getText ());
        messageOut.writeUTF (value.getText ());
      }
      messageOut.send ();
    } catch (IOException ex) {
      ex.printStackTrace ();
    }
  }

  public static void main (String[] args) throws IOException {
    if (args.length != 2)
      throw new IllegalArgumentException
        ("Syntax: TransactionClient <host> <port>");
    TransactionClient client = new TransactionClient
      (args[0], Integer.parseInt (args[1]));
    client.start ();
  }
}

⌨️ 快捷键说明

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