package com.test.demo; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; public class ClientFr extends JFrame { public static void main(String[] args) { new ClientFr(); } private Socket sk = null; public ClientFr() { this.setTitle("客户端"); this.setSize(300, 400); this.setDefaultCloseOperation(3); this.setLocationRelativeTo(null); // 添加容器 JPanel jpa = new JPanel(); JTextArea jta = new JTextArea(10, 20); JTextField jtfa = new JTextField(14); JButton jbb = new JButton("发送"); JButton jba = new JButton("连接服务器"); jba.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { sk = new Socket(InetAddress.getByName("127.0.0.1"), 9090); new ClientThread(sk, jta).start(); } catch (UnknownHostException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }); jbb.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { OutputStream os = sk.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os); BufferedWriter bw = new BufferedWriter(osw); bw.write(jtfa.getText()); bw.newLine(); bw.flush(); } catch (Exception e1) { e1.printStackTrace(); } } }); jpa.add(jba); jpa.add(jta); jpa.add(jtfa); jpa.add(jbb); this.setContentPane(jpa); this.setVisible(true); } }
时间: 2024-04-01 16:37:49 浏览: 111
第4章事件监听器--java.ppt
这是一个简单的基于Java Socket编程的客户端程序,其中包含了连接服务器、发送消息等功能。程序中创建了一个JFrame窗口,包含了一个JTextArea用于显示聊天记录,一个JTextField用于输入发送的消息,以及一个连接服务器和一个发送消息的按钮。当点击连接服务器按钮时,程序会通过Socket连接到指定的服务器IP地址和端口号,并启动一个新的线程用于接收服务器发送的消息并显示在JTextArea中。当点击发送消息按钮时,程序会将JTextField中的消息通过Socket发送给服务器端。
需要注意的是,该程序仅作为基础示例,还需要根据具体需求进行扩展和优化,比如添加异常处理、输入验证、界面美化等功能。同时,Socket编程涉及到网络通信,需要保证网络连接的稳定性和安全性,避免出现数据丢失、消息混乱等问题。
阅读全文