📄 telnet.java
字号:
import java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.Color;
import java.awt.event.*;
class telnet {
JFrame frame;
JTextArea screen; // 接收框
JTextField cmdInfo ,hostName;;//命令栏 服务器名字
JLabel url, cmd; //标签
JButton btnSend;
JMenuBar menuBar;
Socket s = null;
DataOutputStream dos;
@SuppressWarnings("deprecation")
telnet() {
frame = new JFrame("课程设计--Telnet客户端实现");
frame.setLocation(100, 100);
String init = "\n 输入您要连接的URL连接地址,在操作命令栏可以根据提示输入进一步要进行的操作\r\n";
screen = new JTextArea(init);// 返回信息内容
cmdInfo = new JTextField();// 命令输入口
url = new JLabel("连接地址:");
cmd = new JLabel("操作命令:");
hostName = new JTextField();// 主机名
btnSend = new JButton("发送请求");
menuBar = new JMenuBar();//菜单栏
JScrollPane scrollPane = new JScrollPane(screen); //包装一个带滚动功能的接受框
screen.setBackground(Color.black);
screen.setForeground(Color.white);
menuBar.add(url);
menuBar.add(hostName);
menuBar.add(cmd);
menuBar.add(cmdInfo);
menuBar.add(btnSend);
frame.setJMenuBar(menuBar);
frame.getContentPane().add(scrollPane);
frame.addWindowListener(new WindowAdapter() {
//退出--关闭窗口
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//响应发送按钮信息
btnSend.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
sendCmd();
}
});
frame.setSize(700, 500);
frame.show();
}
/*
信息发送
*/
protected void sendCmd() {
try {
String host = hostName.getText(); // 取得输入的主机
if (s == null) {
//判断是否第一次连接 是则进行连接
s = new Socket(host, 23);
new getInfoFromServer(s, screen); // 启动监听
screen.append(" 正在连接.........请稍等\r\n"); // \r\n 表示回车换行
dos = new DataOutputStream(s.getOutputStream());
if (cmdInfo.toString().length() != 0) {
dos.writeBytes(cmdInfo.getText());
}
} else {
//确定为连接后的后续操作
if (cmdInfo.getText().length() != 0)
dos.writeBytes(cmdInfo.getText() + "\r\n"); //获得命令并且发送到客户端
cmdInfo.setText("");
}
} catch (Exception e) {
System.out.println(e);
String wrong = new String("\n 您输入的地址不正确!请输入正确的URL地址!!!\r\n");
screen.setText(wrong);
hostName.setText("");
cmdInfo.setText(""); //重置窗口为空
}
}
//
/*
信息接收
*/
class getInfoFromServer extends Thread {
Socket tempSocket;
JTextArea tempTextArea;
//构造方法实现功能
getInfoFromServer(Socket socket, JTextArea ta) {
tempSocket = socket;
tempTextArea = ta;
start();
}
@SuppressWarnings("deprecation")
//重写的run方法。实现从服务器读取数据
public void run() {
try {
InputStreamReader is = new InputStreamReader(tempSocket.getInputStream());
BufferedReader in = new BufferedReader(is); //包装好的带缓存的字符输入流
String line;
line = in.readLine(); //读一行
while (line != null) {
tempTextArea.append(line + "\r\n"); //保存起来 以便与显示
line = in.readLine(); //再读一行 循环
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
//
// 入口方法 开始执行
public static void main(String args[]) {
new telnet();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -