求一个简单的 局域网聊天工具 的 JAVA代码。 只要可以发送文字就行。 谢谢!!! 10

如果回答框粘贴不上可以给我发邮件,sancike@163.com谢谢了!... 如果回答框 粘贴不上 可以给我发 邮件,sancike@163.com
谢谢了!
展开
 我来答
xinggb888
2012-11-05 · TA获得超过132个赞
知道答主
回答量:34
采纳率:0%
帮助的人:32.5万
展开全部
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class ServerChat extends JFrame implements Runnable{
/**
* @param args
*/
JLabel lblSend=new JLabel("请输入要发送的信息");
JTextField txtSend=new JTextField(20);
JTextArea txaContent=new JTextArea(10,20);
JButton btnSend=new JButton("发送");
Socket s=null;
ServerSocket sc=null;
boolean flag=true;

public ServerChat(){
super("服务器端");
init();
}
private void init(){
setLayout(new BorderLayout());
JPanel p1=new JPanel();
p1.setLayout(new FlowLayout());
p1.add(lblSend);p1.add(txtSend);p1.add(btnSend);
add(p1,BorderLayout.NORTH);
add(txaContent,BorderLayout.CENTER);
btnSend.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
try {
DataOutputStream dos=new DataOutputStream(s.getOutputStream());
DataInputStream dis=new DataInputStream(s.getInputStream());
String tmp=txtSend.getText().trim();
txaContent.append("我说:"+tmp+"\n");
dos.writeUTF(tmp);
txtSend.setText("");
if(tmp.trim().equals("bye"))
{
flag=false;s.close();
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
try {
sc=new ServerSocket(3000);
for(int i=0;i<2;i++)
s=sc.accept();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setSize(400,400);
setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void run() {
try {
DataInputStream dis = new DataInputStream(s.getInputStream());
while (flag) {
String tmp = dis.readUTF();
txaContent.append(tmp+"\n");
if(tmp.trim().equals("bye"))
{
s.close();break;
}
}
dis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ServerChat c=new ServerChat();
new Thread(c).start();
}

}

package ch4;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class ClientChat extends JFrame implements Runnable {
/**
* @param args
*/
JLabel lblSend = new JLabel("请输入要发送的信息");
JTextField txtSend = new JTextField(20);
JTextArea txaContent = new JTextArea(10, 20);
JButton btnSend = new JButton("发送");
Socket s = null;
boolean flag=true;
public ClientChat() {
super("客户端");
init();
}

private void init() {
setLayout(new BorderLayout());
JPanel p1 = new JPanel();
p1.setLayout(new FlowLayout());
p1.add(lblSend);
p1.add(txtSend);
p1.add(btnSend);
add(p1, BorderLayout.NORTH);
add(txaContent, BorderLayout.CENTER);
btnSend.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {

DataOutputStream dos = null;
try {
dos = new DataOutputStream(s.getOutputStream());
DataInputStream dis = new DataInputStream(s
.getInputStream());
String tmp = txtSend.getText().trim();
txaContent.append("我说:" + tmp+"\n");
txtSend.setText("");
if(tmp.trim().equals("bye")){
s.close();flag=false;
}
try {
dos.writeUTF(tmp);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

}
});
try {
s = new Socket("localhost", 3000);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setSize(400, 400);
setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}

public void run() {
try {
DataInputStream dis = new DataInputStream(s.getInputStream());
while (true) {
String tmp = dis.readUTF();
txaContent.append(tmp+"\n");
if(tmp.trim().equals("bye"))
{
s.close();break;
}
}
dis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub
ClientChat c = new ClientChat();
new Thread(c).start();
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2ea31c8
2012-11-05 · TA获得超过129个赞
知道答主
回答量:65
采纳率:0%
帮助的人:61.2万
展开全部
网上很多的,比较专业的网站csdn ,我一直用,注册个帐号就可以,或者你可以找你的学长,估计他们做过了,我以前也是找的前辈的代码,这个最直接了,嘿嘿!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钝角997
2012-11-05
知道答主
回答量:28
采纳率:0%
帮助的人:15.8万
展开全部
我也同求啊 谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式