java 接收表情_怎样有java socket实现发送接受表情类似QQ详细点代码

展开全部

哈 我正好在做一个类似qq的系统,不过还没完工,不过可以运行,现在只实现了登录,显636f70793231313335323631343130323136353331333238643031示分组,列出好友,查看好友信息功册,看看代码吧

哎 类太多了,像什么vo类及实现类我就不发了,再说这些类没什么技术含量

如果有必要的话 你留下邮箱,我将两个工程和数据库代码发给你

服务器类:

package chat;

import impl.UserImpl;

import java.io.IOException;

import java.io.InputStream;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

import vo.Userinfo;

import dao.UserDao;

/**

* 服务器类,用于接受来自客户端的请求,本系统规定来自客户端每一次请求 所传过来的参数不少于两个,第一个用来标识此次请求将做什么操作,后面

* 的参数为客户端请求服务所需的必要参数

*

* @author 程胜

* @version 0.1

* @date 09-01-08

*

*/

public class ChatServer extends Thread {

// 定义最大连接数

private static final int MAXLINK = 50;

// 记录当前连接数

public static int linkNum = 0;

// 定义服务连接对象

private static ServerSocket ss;

public static void main(String[] args) throws Exception {

// 实例化服务类

ss = new ServerSocket(8001);

// 启用多线程:其实就是调用run方法,好像没必要另启线程,哎 写好了 就不改了

new ChatServer().start();

System.out.println("服务器已成功启动…………");

}

/*

* 覆写run方法

*/

public void run() {

Socket soc = null;

try {

// 循环监听客户端请求

while (true) {

while (true) {

// 如果连接数已满,则等待

if (linkNum >= MAXLINK)

this.sleep(100);

else {

break;

}

}

// 监听请求

soc = ss.accept();

// 将连接加一

linkNum++;

// 获得socket对象后调用处理类

new Operate(soc);

}

} catch (Exception e) {

System.out.println(e);

} finally {

if (soc != null) {

try {

soc.close();

ss.close();

} catch (IOException e) {

e.printStackTrace();

}

System.out.println("服务器出现莫名故障,服务器退出!");

}

}

}

}

/**

* 操作类,用来处理来自客户端的请求

*

* @author Administrator

*

*/

class Operate {

// 接定义用于实别客户端发来的头号请求将做何操作的变量

private String operate;

/**

* 以下几行用于声明网络操作的必要变量

*/

private Socket soc = null;

private InputStream ips = null;

private OutputStream ops = null;

private ObjectOutputStream soops = null;

private ObjectInputStream soips = null;

/**

* 构造函数,在其中为以上定义的变量的赋值

*

* @param soc

*/

Operate(Socket soc) {

this.soc = soc;

try {

ips = soc.getInputStream();

ops = soc.getOutputStream();

soips = new ObjectInputStream(ips);

// 接收从客户端发来的头号请求,它用于实别此次请求的内容

operate = soips.readObject().toString();

} catch (Exception e) {

System.out.println(e);

}

// 调用实际操作方法

whichOpe();

}

/**

* 判断是哪个操作

*/

private void whichOpe() {

if ("login".equals(operate)) {

login();

} else {

if ("".equals(operate)) {

}

}

}

/**

* 连接数据库,进行登录验证

*/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小明用基于socket通道做了一个实时聊天,实现了多客户客户端、服务端的实时通信,但是老师要求每个人都有自己的独特功能........于是,小明想,创新是不可能创新的,那现在QQ的工鞥有什么能够移植的呢,,,小明效果了一圈,发现大多功能都是基于文件传输,去找了一下socket的文件传输,果断撂挑子。还有什呢,要不就自己客户端约定好,特殊的字符串表示特殊操作,比如下面小明要举个例子:                                                                                                                                   有两个客户端A、B,客户端都是一模一样的,里面资源实现存放好10张图片,并且约定:发送消息为“@”的时候,这个字符串后边会跟着一个数字,咱们两个同时把数字代表编号的图片输出到聊天框,如                                                                A发送给B:@     那现在,两个客户端就会把3号图片输出到聊天框,造成发送的是图片的假象 说干就干,先实现自己窗口判断输出图片,在获取于是先在获取聊天输入区文本时做判断(我正添加表情按钮,到时候就不用记住暗号了),在输出相应编号图片,欸不对啊,这个聊天信息展示区是个文本框啊,那就给改成面板,使用新建面板类,使用流式布局规定布局宽度(不然他会横着输出消息)然后是面板添加滚动条,然后再聊天区打出来就好了 ----(一个积分,望土豪点一点,我也想恰饭) 你们看到这个代码的时候,我主页应该就有相关博文了,大家可以去参考

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值