客户端程序

package tcp;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GraphicsConfiguration;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.BevelBorder;


/*
 * 客户端程序,实现将用户在文本框中输入的信息发送至服务器端,并将文本框中输入的信息显示在客户端的文本域中
 */
public class MyClient extends JFrame{
    
    //声明PrintWriter类对象
    private PrintWriter writer;
    //声明Socket对象
     Socket socket;
    //声明文本域对象
    private JTextArea ta=new JTextArea();
    //声明文本框组件对象
    private JTextField jf=new JTextField();
    //声明Container对象
    Container cc;
    //声明构造方法
    public MyClient(String title) {
        //调用父类的构造方法
        super(title);
        //设置窗体关闭方式
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //实例化对象
        cc=this.getContentPane();
        //创建JScrollPane面板
        final JScrollPane scrollPane=new JScrollPane();
        scrollPane.setBorder(new BevelBorder(BevelBorder.RAISED));
        getContentPane().add(scrollPane,BorderLayout.CENTER);
        scrollPane.setViewportView(ta);
        //将文本框放在窗体下部
        cc.add(jf,"South");
        jf.addActionListener(new ActionListener() {
            //绑定事件
            @Override
            public void actionPerformed(ActionEvent e) {
                //将文本框中的数据写入流
                writer.println(jf.getText());
                //将文本框中的信息显示在文本域中
                ta.append(jf.getText()+'\n');
                ta.setSelectionEnd(ta.getText().length());
                jf.setText("");//将文本框清空
            }
        });
    }
    //连接套接字方法
    private void connect() {
        //文本域中提示信息
        ta.append("尝试连接\n");
        try {//捕捉异常
            //实例化Socket对象
            socket=new Socket("192.168.0.107",8080);
            writer=new PrintWriter(socket.getOutputStream(),true);
            //文本域中提示信息
            ta.append("完成连接\n");
        } catch (Exception e) {
            e.printStackTrace();
        }    
    }
    public static void main(String[] args) {
        //创建本实例对象
        MyClient client=new MyClient("向服务器送数据");
        //设置窗体大小
        client.setSize(200,200);
        //将窗体显示
        client.setVisible(true);
        //调用连接方法
        client.connect();
    }

}

猜你喜欢

转载自blog.csdn.net/qq_41978199/article/details/80720651