java局域网客户端,java局域网聊天客户端

gistfile1.txt

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.*;

import java.net.Socket;

import java.net.UnknownHostException;

import javax.swing.*;

public class Chats extends JFrame{

Socket socket;

PrintWriter out;

BufferedReader in;

JPanel p;

JScrollPane sp;

JTextArea txtContent;

JLabel lblName, lblSend;

JTextField txtName , txtSend;

JButton btnSend;

public Chats(){

super("客户聊天");

txtContent = new JTextArea();

//设置文本域只读

txtContent.setEditable(false);

sp = new JScrollPane(txtContent);

lblName = new JLabel ("姓名:");

txtName = new JTextField(5) ;

lblSend = new JLabel("请输入:");

txtSend = new JTextField(20);

btnSend = new JButton("发送");

p = new JPanel();

p.add(lblName);

p.add(txtName);

p.add(lblSend);

p.add(txtSend);

p.add(btnSend);

this.add(p,BorderLayout.SOUTH);

this.add(sp);

this.setSize(500,400);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

try{

//创建一个套接字

socket = new Socket("192.168.18.188", 8000);

//创建一个往套接字中写数据的通道,即输出流,给服务器发送信息

out = new PrintWriter(socket.getOutputStream());

//创建一个从套接字读取数据的通道,即输入流,读服务器的返回信息

in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

}catch(UnknownHostException e){

e.printStackTrace();

}catch(IOException e){

e.printStackTrace();

}

// 注册监听

btnSend.addActionListener(new ActionListener(){

public void actionPerformed( ActionEvent e){

//获取用户输入的文本

String strName = txtName.getText();

String strMsg = txtSend.getText();

if(!strMsg.equals("")){

//通过输入流将数据发送给服务器

out.println(strName +"说 :" +strMsg);

out.flush();

//清空文本框

txtSend.setText("");

}

}

});

//启动线程

new GetMsgFromServer().start();

}

//接受服务器的返回信息

class GetMsgFromServer extends Thread {

public void run(){

while ( this.isAlive() ){

try{

String strMsg = in.readLine();

if(strMsg != null){

//在文本域中显示聊天信息

txtContent.append(strMsg+"\n");

}

Thread.sleep(50);

}catch(Exception e){

e.printStackTrace();

}

}

}

}

public static void main(String[] args){

Chats f = new Chats();

f.setVisible(true);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值