客户端程序:
package tcpclient;import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import java.net.*;
import java.io.*;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/public class Frame1 extends JFrame implements Runnable{
JPanel contentPane;
TextArea textArea1 = new TextArea();
XYLayout xYLayout1 = new XYLayout();
Label label1 = new Label();
TextField textField1 = new TextField();
Button button1 = new Button();
Button button2 = new Button();
Button button3 = new Button();
//添加代码
Socket socket = null;
BufferedReader in = null;
PrintWriter out = null; //Construct the frame
public Frame1() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(xYLayout1);
this.setSize(new Dimension(400, 355));
this.setTitle("客户端");
label1.setText("消息:");
button1.setLabel("开始发送");
button1.addActionListener(new Frame1_button1_actionAdapter(this));
button2.setLabel("连接");
button2.addActionListener(new Frame1_button2_actionAdapter(this));
button3.setLabel("退出");
button3.addActionListener(new Frame1_button3_actionAdapter(this));
textField1.setText("");
textField1.addKeyListener(new Frame1_textField1_keyAdapter(this));
contentPane.add(textArea1, new XYConstraints(8, 8, 379, 209));
contentPane.add(label1, new XYConstraints(41, 235, -1, -1));
contentPane.add(textField1, new XYConstraints(77, 233, 236, -1));
contentPane.add(button1, new XYConstraints(317, 233, -1, -1));
contentPane.add(button2, new XYConstraints(94, 267, -1, -1));
contentPane.add(button3, new XYConstraints(227, 266, -1, -1));
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
try{
out.print("客户端已经退出");
out.flush();
}catch(Exception ex){}
finally{
System.exit(0);
}
}
} void button1_actionPerformed(ActionEvent e) {
out.print(textField1.getText());
out.flush();
textArea1.append("客户端信息: "+ textField1.getText()+"\n");
textField1.setText("");
} void button3_actionPerformed(ActionEvent e) {
try{
out.print("客户端退出");
out.flush();
}
catch(Exception e2){}
finally{
System.exit(0);
}
} void button2_actionPerformed(ActionEvent e) {
Thread thread = new Thread(this);
thread.start();
} void textField1_keyPressed(KeyEvent e) {
int j = e.getKeyCode();
if(j == e.VK_ENTER){
out.print(textField1.getText());
out.flush();
textArea1.append("客户端信息: " + textField1.getText()+"\n");
textField1.setText("");
}
}
//添加代码
public void run(){
try{
socket = new Socket("mg321",5438);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream());
button1.setEnabled(true);
receiver r = new receiver();
Thread t = new Thread(r);
t.start();
textArea1.append("系统信息: 已经连接上服务端! \n");
button2.setEnabled(false);
}
catch(Exception e){
textArea1.append(e.toString() + "\n");
}
}
//内部类
private class receiver implements Runnable{
public void run(){
String s1 = null;
try{
s1 = in.readLine();
while(s1 != "client exit!"){
textArea1.append("服务器端信息: " + s1 + "\n");
s1 = in.readLine();
}
in.close();
out.close();
socket.close();
}
catch(Exception e){}
button1.setEnabled(false);
}
}
}class Frame1_button1_actionAdapter implements java.awt.event.ActionListener {
Frame1 adaptee; Frame1_button1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.button1_actionPerformed(e);
}
}class Frame1_button3_actionAdapter implements java.awt.event.ActionListener {
Frame1 adaptee; Frame1_button3_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.button3_actionPerformed(e);
}
}class Frame1_button2_actionAdapter implements java.awt.event.ActionListener {
Frame1 adaptee; Frame1_button2_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.button2_actionPerformed(e);
}
}class Frame1_textField1_keyAdapter extends java.awt.event.KeyAdapter {
Frame1 adaptee; Frame1_textField1_keyAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void keyPressed(KeyEvent e) {
adaptee.textField1_keyPressed(e);
}
}
package tcpclient;import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import java.net.*;
import java.io.*;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/public class Frame1 extends JFrame implements Runnable{
JPanel contentPane;
TextArea textArea1 = new TextArea();
XYLayout xYLayout1 = new XYLayout();
Label label1 = new Label();
TextField textField1 = new TextField();
Button button1 = new Button();
Button button2 = new Button();
Button button3 = new Button();
//添加代码
Socket socket = null;
BufferedReader in = null;
PrintWriter out = null; //Construct the frame
public Frame1() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(xYLayout1);
this.setSize(new Dimension(400, 355));
this.setTitle("客户端");
label1.setText("消息:");
button1.setLabel("开始发送");
button1.addActionListener(new Frame1_button1_actionAdapter(this));
button2.setLabel("连接");
button2.addActionListener(new Frame1_button2_actionAdapter(this));
button3.setLabel("退出");
button3.addActionListener(new Frame1_button3_actionAdapter(this));
textField1.setText("");
textField1.addKeyListener(new Frame1_textField1_keyAdapter(this));
contentPane.add(textArea1, new XYConstraints(8, 8, 379, 209));
contentPane.add(label1, new XYConstraints(41, 235, -1, -1));
contentPane.add(textField1, new XYConstraints(77, 233, 236, -1));
contentPane.add(button1, new XYConstraints(317, 233, -1, -1));
contentPane.add(button2, new XYConstraints(94, 267, -1, -1));
contentPane.add(button3, new XYConstraints(227, 266, -1, -1));
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
try{
out.print("客户端已经退出");
out.flush();
}catch(Exception ex){}
finally{
System.exit(0);
}
}
} void button1_actionPerformed(ActionEvent e) {
out.print(textField1.getText());
out.flush();
textArea1.append("客户端信息: "+ textField1.getText()+"\n");
textField1.setText("");
} void button3_actionPerformed(ActionEvent e) {
try{
out.print("客户端退出");
out.flush();
}
catch(Exception e2){}
finally{
System.exit(0);
}
} void button2_actionPerformed(ActionEvent e) {
Thread thread = new Thread(this);
thread.start();
} void textField1_keyPressed(KeyEvent e) {
int j = e.getKeyCode();
if(j == e.VK_ENTER){
out.print(textField1.getText());
out.flush();
textArea1.append("客户端信息: " + textField1.getText()+"\n");
textField1.setText("");
}
}
//添加代码
public void run(){
try{
socket = new Socket("mg321",5438);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream());
button1.setEnabled(true);
receiver r = new receiver();
Thread t = new Thread(r);
t.start();
textArea1.append("系统信息: 已经连接上服务端! \n");
button2.setEnabled(false);
}
catch(Exception e){
textArea1.append(e.toString() + "\n");
}
}
//内部类
private class receiver implements Runnable{
public void run(){
String s1 = null;
try{
s1 = in.readLine();
while(s1 != "client exit!"){
textArea1.append("服务器端信息: " + s1 + "\n");
s1 = in.readLine();
}
in.close();
out.close();
socket.close();
}
catch(Exception e){}
button1.setEnabled(false);
}
}
}class Frame1_button1_actionAdapter implements java.awt.event.ActionListener {
Frame1 adaptee; Frame1_button1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.button1_actionPerformed(e);
}
}class Frame1_button3_actionAdapter implements java.awt.event.ActionListener {
Frame1 adaptee; Frame1_button3_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.button3_actionPerformed(e);
}
}class Frame1_button2_actionAdapter implements java.awt.event.ActionListener {
Frame1 adaptee; Frame1_button2_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.button2_actionPerformed(e);
}
}class Frame1_textField1_keyAdapter extends java.awt.event.KeyAdapter {
Frame1 adaptee; Frame1_textField1_keyAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void keyPressed(KeyEvent e) {
adaptee.textField1_keyPressed(e);
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货