java 聊天 源代码_JAVA简易聊天源代码

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import http://www.doczj.com/doc/a5e3fa7702768e9951e738f7.html.*;

import java.util.*;

public class SocketTalk extends Frame implements ActionListener,WindowListener {

TextField field,id,message;

Button button,bid,btmsg,close;

byte[] c=new byte[1000];

Socket socket;

private final int MAXUSER=10;

private Daemon daemons[];

public ServerSocket svsocket;

public Vector clients;

TextField port;

Button btstart;

TextArea tamsg;

Panel panel1,panel2;

public static void main(String args[]) {

SocketTalk test=new SocketTalk();

test.addWindowListener(test);

test.setSize(800,400);

test.setVisible(true);

}

public SocketTalk(){

setTitle("JAVA简易聊天");

panel1=new Panel();

panel1.setLayout(new FlowLayout());

TextField tf=new TextField("输入连接端口,开启Socket");

tf.setBackground(Color.white);

tf.setEditable(false); //提示用,不可编辑

panel1.add(tf);

port=new TextField("3388");

panel1.add(port);

btstart=new Button("开始");

btstart.addActionListener(this);

panel1.add(btstart);

add(panel1,BorderLayout.NORTH);

panel2=new Panel();

panel2.setLayout(new FlowLayout());

panel2.add(new Label("IP地址: "));

field=new TextField(20);

panel2.add(field);

button=new Button("连接");

panel2.add(button);

button.addActionListener(this);

id=new TextField(10);

panel2.add(id);

bid=new Button("确认昵称");

panel2.add(bid);

bid.addActionListener(this);

bid.enable(false);

message=new TextField(20);

panel2.add(message);

btmsg=new Button("发送");

btmsg.enable(false);

panel2.add(btmsg);

btmsg.addActionListener(this);

close=new Button("关闭");

panel2.add(close);

close.addActionListener(this);

add(panel2,BorderLayout.SOUTH);

tamsg=new TextArea();

tamsg.setBackground(Color.PINK);

tamsg.append("输入你要链接的地址,然后按(link)按钮\n");

add(tamsg,BorderLayout.CENTER);

setBackground(Color.white);

}

public void actionPerformed(ActionEvent e) {

int i;

String strmsg;

String label=((Button)e.getSource()).getLabel();

if(http://www.doczj.com/doc/a5e3fa7702768e9951e738f7.htmlpareTo("开始")==0) {

try {

int po=Integer.parseInt(port.getText());

svsocket=new ServerSocket(po);

daemons=new Daemon[MAXUSER];

clients=new Vector();

for (int j=0;jdaemons[j]=new Daemon(this);

daemons[j].start();

}

tamsg.append("Listening to port 3388......\n");

}

catch (IOException ioe) {

tamsg.append("IOException:"+ioe.getMessage());

}

}

else if(http://www.doczj.com/doc/a5e3fa7702768e9951e738f7.htmlpareTo("连接")==0)

{

try {

socket=new Socket(field.getText(),3388);

button.enable(false);

bid.enable(true);

DataInputStream is=new DataInputStream(socket.getInputStream());

i=is.read(c);

tamsg.append(new String(c,0,i));

}

catch (Exception exc) {

tamsg.append("error happended link\n");

tamsg.append(exc.toString());

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值