由于这几天挺忙的,以前写的小东西也没有时间去改了,呵呵~
这个是利用java.net包下的ServerSocket和Socket写的,先分别在服务器端和客户端建立两个流,利用了Socket类下的getOutputStream和getOutputStream两个方法,其他的和对流的操作是一样的。
由于代码写的比较多的,都写上来,恐怕看起来会很乱很费事。这里只列举一部分,一个框架思路。写的比较匆忙,注释懒的写了,呵呵~
逻辑层只列举一个Server端,Client端和Server端是一样的,只是在实例化一个Socket对象的时候二者有一点不一样。实现层也只列举一个Server端,二者也是大同小异,稍做改动就成。
//TestSocket.java(逻辑层)
package logic;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.net.ServerSocket;
import java.net.Socket;
public class TestSocket {
ServerSocket serverSocket = null;
Socket socket = null;
InputStream inputStream = null;
Reader reader = null;
BufferedReader bufferedReader = null;
OutputStream outputStream = null;
Writer writer = null;
BufferedWriter bufferedWriter = null;
public TestSocket() throws IOException{
serverSocket = new ServerSocket(端口号);
socket = serverSocket.accept();
inputStream = socket.getInputStream();
reader = new InputStreamReader(inputStream);
bufferedReader = new BufferedReader(reader);
outputStream = socket.getOutputStream();
writer = new OutputStreamWriter(outputStream);
bufferedWriter = new BufferedWriter(writer);
}
public void SendToClient(String message) throws IOException{
bufferedWriter.write(message);
bufferedWriter.newLine();
bufferedWriter.flush();
}
public String GetFromClient() throws IOException{
return bufferedReader.readLine();
}
}
// ServerFrame.java(实现层)
package frame;
import java.awt.FlowLayout;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import logic.TestSocket;
public class ServerFrame extends JFrame{
private JTextArea textArea = new JTextArea(11,25);
private JTextField textField = new JTextField(19);
private JButton button = new JButton("发送");
private Panel panel = new Panel();
private TestSocket socket = null;
public ServerFrame(){
super("聊天系统(Server)");
this.setSize(300, 300);
this.setLocation(150, 150);
this.setLayout(new FlowLayout());
this.add(textArea);
panel.add(textField);
panel.add(button);
this.add(panel);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
button.addActionListener(new MyListener());
this.setVisible(true);
try {
socket = new TestSocket();
} catch (IOException e1) {
textArea.append("对不起,该端口正被使用");
}
while (true) {
try {
String s = socket.GetFromClient();
textArea.append(s + "\n");
} catch (IOException e) {
//textArea.append("数据接收错误");
return;
}
}
}
class MyListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
try {
String s = textField.getText();
if (s.length() > 0) {
socket.SendToClient(new Date().toLocaleString() + " Server Send: \n" + s);
}
textArea.append(new Date().toLocaleString() + " Server Send: \n" + s + "\n");
}
catch (IOException e1) {
textArea.append("发送失败");
}
finally{
textField.setText("");
}
}
}
public static void main(String[] args) {
JFrame serverFrame = new ServerFrame();
}
}
分享到:
相关推荐
java实现多人聊天(类似于QQ聊天)
这是个用JAVA实现了可以聊天功能的应用...里面有源代码
使用java编写的局域网聊天器 界面还不错的
类似于QQ的聊天系统 界面漂亮 有语音提示 内嵌浏览器
类似于QQ的聊天系统,数据库之类的,使用JAVA语言
java程序 类似QQ聊天的完整的程序设计,对于学习者会有帮助。
充分的体现Java的抽象 继承 多态和封装 集合Map用的最多功能做的也不错,有截图 抖动 QQ群用户列表和信息提示。很好很好理解JAVA的面向对象的特征
我从网上下载的用java编写的聊天程序,类似qq,据说看了就知道qq是怎么编写的了,可是我不知道怎么用,呵呵,请会的回复一下
用Java程序做的类似于QQ聊天的简易聊天室,这个作品希望可以让Java初学者一点启发和技术,只要用户把服务器端打开、客户端输入相应的端口号、就可以进行聊天、比较简单方便!!不用上网,只要在同一局域网就可以放心...
这是一个纯java代码编写的一个模拟QQ,可登录,可注册,可聊天,实现其基本功能(当然是单机版,个人玩玩的),里面包含源码,可供参与借鉴
用java编写的一个类似于qq的在线聊天系统
Java网络编程 多功能QQ 课程设计 报告书 任务书 源代码 源程序
类似于qq的一个小聊天程序,初学Java的可以看看
使用JAVA做了一个仿QQ的聊天程序,程序分为客户端和服务端,希望对各位学习JAVA的同学有用
本次课程设计是一个类似于QQ的聊天软件,结合所学Java课程,用Java完成了图形化界面和事件处理、多线程编程、Socket通信、数据库存储,保存通信记录的功能,完成网络聊天软件。进行编程实验,程序代码编写、调试、...
简单的群聊系统 简单的界面 类似于QQ聊天 不过仅仅实现了聊天
自己编写的java聊天软件,类似于qq,可以作为java课程设计
JAVA聊天程序,类似于QQ的啊,学得用着还行的,刚学JAVA网络编程,写一个试哈,也能用了,谢谢提见解啊!
前段时间做的初级项目,用JAVA写的一个类似于QQ的聊天程序,功能比较强大,实现了点对点私聊,群聊,文件传送,手机短信发送,表情发送,抖动窗口,字体设置,颜色设置,娱乐辅助功能等。