📄 transactionclient.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 + -