📄 frame1.java~24~
字号:
package tcp;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JRadioButton;
import javax.swing.JToggleButton;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class Frame1 extends JFrame {
JPanel contentPane;
JLabel jLabel1 = new JLabel();
JRadioButton jRadioButton1 = new JRadioButton();
JRadioButton jRadioButton2 = new JRadioButton();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JLabel jLabel4 = new JLabel();
JLabel jLabel5 = new JLabel();
JTextField jTextField1 = new JTextField();
JTextField jTextField2 = new JTextField();
JTextField jTextField3 = new JTextField();
JScrollPane jScrollPane1 = new JScrollPane();
JTextArea jTextArea1 = new JTextArea();
String inbuf;
ServerSocket socket1;
Socket insocket1,socket2;
BufferedReader in1;
PrintWriter out1;
tcpserver t1;
tcpclient t2;
JButton jButton3 = new JButton();
public Frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(544, 423));
setTitle("Frame Title");
jLabel1.setText("TCP通信程序");
jLabel1.setBounds(new Rectangle(23, 12, 126, 21));
jRadioButton1.setText("服务器端");
jRadioButton1.setBounds(new Rectangle(21, 40, 86, 23));
jRadioButton2.setText("客户端");
jRadioButton2.setBounds(new Rectangle(118, 41, 70, 23));
jButton1.setText("结束连接");
jButton2.setBounds(new Rectangle(438, 338, 84, 23));
jButton2.setText("发送");
jLabel2.setText("连接状态");
jLabel2.setBounds(new Rectangle(239, 45, 66, 17));
jLabel3.setText("连接主机IP");
jLabel3.setBounds(new Rectangle(23, 78, 77, 24));
jLabel4.setText("接收到的信息");
jLabel4.setBounds(new Rectangle(24, 120, 76, 21));
jLabel5.setText("发送信息");
jLabel5.setBounds(new Rectangle(30, 341, 63, 19));
jTextField1.setBounds(new Rectangle(309, 43, 211, 20));
jTextField3.setBounds(new Rectangle(102, 341, 328, 20));
jScrollPane1.setBounds(new Rectangle(105, 116, 326, 211));
jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this));
jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
jTextField2.setBounds(new Rectangle(102, 82, 328, 20));
jButton1.setBounds(new Rectangle(438, 121, 84, 23));
jButton3.setBounds(new Rectangle(438, 79, 81, 23));
jButton3.setText("建立连接");
jButton3.addActionListener(new Frame1_jButton3_actionAdapter(this));
contentPane.add(jLabel1, null);
contentPane.add(jRadioButton1);
contentPane.add(jRadioButton2);
contentPane.add(jLabel2);
contentPane.add(jTextField1);
contentPane.add(jTextField3);
contentPane.add(jLabel5);
contentPane.add(jButton2);
contentPane.add(jLabel4);
contentPane.add(jScrollPane1);
contentPane.add(jLabel3);
contentPane.add(jTextField2);
contentPane.add(jButton1);
contentPane.add(jButton3);
jScrollPane1.getViewport().add(jTextArea1);
t1=new tcpserver();
t2=new tcpclient();
}
public void jButton2_actionPerformed(ActionEvent e) {
out1.write(jTextField3.getText()+"\n");
out1.flush();
jTextField3.setText("");
}
public void jButton1_actionPerformed(ActionEvent e) {
try{//关闭连接
if (jRadioButton1.isSelected() == true) {
insocket1.close();
jTextField1.setText("离线!");
jButton2.setEnabled(false);
jButton1.setEnabled(false);
} else {
socket2.close();
jTextField1.setText("离线!");
jButton2.setEnabled(false);
jButton1.setEnabled(false);
}
}
catch(Exception e2){jTextField1.setText("发生错误");
}
}
public void jButton3_actionPerformed(ActionEvent e) {
try {
if (jRadioButton1.isSelected() == true) {
inbuf = "";
jTextField3.setText("");
t1.start();
} else {
inbuf = "";
jTextField3.setText("");
t2.start();
}
} catch (Exception e2) {
jTextField1.setText("发生错误");
}
}
class tcpserver extends Thread{
public tcpserver(){}
public void run(){
//String str1;
try{jButton3.setEnabled(false);
jTextField1.setText("正在等待连接!");
jTextField2.setText(InetAddress.getLocalHost().getHostAddress());
socket1=new ServerSocket(21);
insocket1=socket1.accept();
in1=new BufferedReader(new InputStreamReader(insocket1.getInputStream()));
out1=new PrintWriter(insocket1.getOutputStream(),true);
while(true)
//接收
{ if(socket1.isBound()==true)
{jTextField1.setText("正在连接中!");
jButton2.setEnabled(true);
jButton1.setEnabled(true);
break;
}
}
while(true)
{inbuf=in1.readLine();
if(inbuf.length()>0)
{jTextArea1.append(inbuf+"\n");
}
}
}
catch(Exception e){}
}
}
class tcpclient extends Thread{
public tcpclient(){}
public void run(){
try{
jButton3.setEnabled(false);
jTextField1.setText("正在等待连接!");
socket2=new Socket();
socket2.connect(new InetSocketAddress(jTextField2.getText(),21),5000);
in1=new BufferedReader(new InputStreamReader(socket2.getInputStream()));
out1=new PrintWriter(socket2.getOutputStream(),true);
while(true)
//接收
{ if(socket2.isBound()==true)
{jTextField1.setText("正在连接中!");
jButton2.setEnabled(true);
jButton1.setEnabled(true);
break;
}
}
inbuf="";
while(true)
{inbuf=in1.readLine();
if(inbuf.length()>0)
{jTextArea1.append(inbuf+"\n");
}
}
}
catch(Exception e){}
}
}
}
class Frame1_jButton3_actionAdapter implements ActionListener {
private Frame1 adaptee;
Frame1_jButton3_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton3_actionPerformed(e);
}
}
class Frame1_jButton1_actionAdapter implements ActionListener {
private Frame1 adaptee;
Frame1_jButton1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
class Frame1_jButton2_actionAdapter implements ActionListener {
private Frame1 adaptee;
Frame1_jButton2_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton2_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -