📄 client.java
字号:
import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Client
{
public static void main(String args[])
{ new QueryClient();
}
}
class QueryClient extends Frame implements Runnable,ActionListener,KeyListener
{ Button connection,send;
TextField inputText;
TextArea showResult;
Socket socket1=null;
DataInputStream in=null;
DataOutputStream out=null;
Thread thread;
QueryClient()
{ socket1=new Socket();
Panel p=new Panel();
connection=new Button("连接服务器");
send=new Button("发送");
send.setEnabled(false);
inputText=new TextField(8);
showResult=new TextArea(6,42);
p.add(connection);
p.add(new Label("输入学号"));
p.add(inputText);
p.add(send);
add(p,BorderLayout.NORTH);
add(showResult,BorderLayout.CENTER);
connection.addActionListener(this);
inputText.addKeyListener(this);
send.addActionListener(this);
thread=new Thread(this);
setBounds(10,30,350,400);
setVisible(true);
validate();
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
});
}
public void keyReleased(KeyEvent e)
{
}
public void keyPressed(KeyEvent e)
{
TextField text=(TextField)e.getSource();
if(e.getKeyCode()==KeyEvent.VK_ENTER)
{
String s=inputText.getText();
if(s!=null)
{ try { out.writeUTF(s);
}
catch(IOException e1){}
}
}
}
public void keyTyped(KeyEvent e)
{
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==connection)
{ try
{
String inputValue = JOptionPane.showInputDialog("请输入服务器端的IP地址:");
if(socket1.isConnected())
{
//JOptionPane.showConfirmDialog(this,"数据库已经连接!","警告",JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE);
}
else
{ InetAddress address=InetAddress.getByName(inputValue);//IP地址为服务器的IP地址。在本地上实验,
//即本机既当作客户端又当作服务器,用“全0”
//的IP地址或者是以“127”开头的IP地址,或者用主机名都行。
InetSocketAddress socketAddress=new InetSocketAddress(address,4330); //三种构造法:InetSocketAddress(int port),InetSocketAddress(InetAddress addr,int port),InetSocketAddress(String hostname,int port)
socket1.connect(socketAddress);
in =new DataInputStream(socket1.getInputStream());
out = new DataOutputStream(socket1.getOutputStream());
JOptionPane.showConfirmDialog(this,"已和服务器接通!","警告",JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE);
send.setEnabled(true);
thread.start();
}
}
catch (IOException ee){}
}
if(e.getSource()==send)
{ String s=inputText.getText();
if(s!=null)
{ try { out.writeUTF(s);
}
catch(IOException e1){}
}
}
}
public void run()
{ String s=null;
while(true)
{ try{ s=in.readUTF();
showResult.append("\n"+s);
}
catch(IOException e)
{ showResult.setText("与服务器已断开");
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -