客户端:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
public class client1 extends JFrame {
private JButton btn_send;
private JLabel label_notice;
private JTextField jtf_send;
private JTextArea jta_message;
private JPanel panel2;
private JScrollPane jsp;
private Socket socket;
DataInputStream in;
DataOutputStream out;
private JButton btn_connect;
private JPanel panel;
//private Thread thread;
Message m;
public client1()
{
/////////////////////////关于界面的开始//////////////////////////////////
btn_connect=new JButton("连接服务器");
btn_send=new JButton("发送");
m=new Message();
label_notice=new JLabel("请输入发送信息");
jtf_send=new JTextField(35);
panel=new JPanel();
panel.add(label_notice);
panel.add(jtf_send);
panel.add(btn_send);
add(panel,BorderLayout.NORTH);
jta_message=new JTextArea();
jsp=new JScrollPane(jta_message);//////JTextArea时需要用这个容器//////为什么
add(jsp,BorderLayout.CENTER);
add(btn_connect,BorderLayout.SOUTH);
jta_message.setEnabled(true);
jta_message.setEditable(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("用户");
setLocation(200,200);
setSize(630,400);
setVisible(true);
btn_connect.addActionListener(new ActionListener ()/////////监听连接////////
{
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
try
{
socket =new Socket("127.0.0.1",6666);
out=new DataOutputStream(socket.getOutputStream());
in=new DataInputStream(socket.getInputStream());
btn_connect.setVisible(false);
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("连接失败……,请重新连接……");
}
}
});
btn_send.addActionListener(new ActionListener()//////////////监听发送键/////////
{
public void actionPerformed(ActionEvent e)
{
try
{
System.out.println("监听发送键成功");
String sendmessage=jtf_send.getText();
jtf_send.setText("");
out.writeUTF(sendmessage);
System.out.println(sendmessage);
//out.flush();
}
catch(Exception e1)
{
e1.printStackTrace();
}
}
}
);
new Thread(m).start();
}
class Message implements Runnable///////////////////////////内部类的好处//////////////////
{
public void run()
{
System.out.println("进入client的run函数,输出用户写的内容");
String str;
try
{
while(true)
{
System.out.println("准备接受数据");
str=in.readUTF();
if(str!=null)
{
System.out.println("已经收到数据");
System.out.println(str);
jta_message.append(str+'\n');
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new client1();
}
}
/////////////////////////////////////////////////////////////////////////