java类似qq程序_java网络编程(三):一个类似QQ的聊天程序

packageQQ;import javax.swing.*;import java.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.WindowEvent;importjava.awt.event.WindowListener;importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.io.PrintWriter;importjava.net.Socket;/*** Created by hu on 2015/11/8.*/

//QQ类似聊天程序的客户端

public class Client extendsJFrame {staticJTextArea area;

JTextField field;

JButton button;staticPrintWriter writer;publicClient() {this.setTitle("客户端");this.setSize(400,500);

area=new JTextArea(25,30);

area.setEditable(false);

field=new JTextField(20);

button=new JButton("提交");

JScrollPane sp=newJScrollPane(area);

JPanel panel=newJPanel();this.add(sp, BorderLayout.CENTER);

panel.add(field);

panel.add(button);this.add(panel,BorderLayout.SOUTH);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

button.addActionListener(newActionListener() {

@Overridepublic voidactionPerformed(ActionEvent e) {

String text=field.getText();

writer.println(text);

area.append("me:"+text+"\n");

field.setText("");

}

});

}public static void main(String[] args)throwsException{

Socket socket=new Socket("127.0.0.1",8899);

Client client=newClient();

OutputStream out=socket.getOutputStream();

BufferedReader reader=new BufferedReader(newInputStreamReader(socket.getInputStream()));

writer=new PrintWriter(out,true);

client.addWindowListener(newWindowListener() {

@Overridepublic voidwindowOpened(WindowEvent e) {

}

@Overridepublic voidwindowClosing(WindowEvent e) {

System.out.println("closing");try{

socket.shutdownInput();

socket.shutdownOutput();

socket.close();

writer.close();

reader.close();

}catch(Exception exception){

exception.printStackTrace();

}

}

@Overridepublic voidwindowClosed(WindowEvent e) {

System.out.println("closed");

}

@Overridepublic voidwindowIconified(WindowEvent e) {

}

@Overridepublic voidwindowDeiconified(WindowEvent e) {

}

@Overridepublic voidwindowActivated(WindowEvent e) {

}

@Overridepublic voidwindowDeactivated(WindowEvent e) {

}

});while (true){try{

String line=reader.readLine();

area.append("服务器:"+line+"\n");

}catch(Exception exception){

System.out.println("客户端程序已经关闭!");break;

}

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值