JAVA项目1:聊天
来源:互联网 发布:stm32jlink 烧录软件 编辑:程序博客网 时间:2024/06/03 17:52
- 一功能要求
一、功能要求:
- 功能:.实现多人聊天,或者指定对象进行聊天。
- 思路:
1.多个客户端,需要一个服务器。当客户端将数据发给服务端,服务端收到后将数据转发给所有的客户机。
2.服务器要发给多个客户端的实现方法:
需要存好连接到它的所有客户端的socket,在启动服务器后,监听端口后,循环监听,每有客户端接入时将socket存入。
3.服务器端连接的监听事件中代码:
1)多创线程的作用:new Thread(new Runnable(){}).start()
;的作用:服务器端需要一直等待连接accept,但accept方法在主线程的话一直循环,就会使服务器一直等待,陷入死等,这里将accept放入一个新线程相当于派出一个人专门等客户机的连接,然后服务器可以干别的事。Thread t=new Thread(new MyServerRead(MyServer.this,socket));
这个线程的作用:专门又派出一人守着单独一个客户机,等着这个客户机的消息。传入socket的原因:由于客户机有很多,每个守着它的线程需要知道它守着的客户机的socket,在调用read()方法时,再传入,以便read方法去读socket中流。
4.利用HashMap存socket的原因:
由于客户端如果指定发给其他客户端信息,那么需要每个客户端有唯一编号,所以用key,value的方式<ip,socket>
5.将read方法写在服务器的java文件中而不是读线程的原因:
1)原因:因为服务器MyServer中要把读到的line放到model中,所以可以在MyServer中写read方法,然后在线程中调用read方法。
2)其他方法:也可以将read方法写到读线程中,然后在MyServer中创建一个获取line并写到model的方法,然后在读线程中获取到MyServer类对象,使用其方法。
/*一些子方法://1.客户端将text中信息包装成json信息的方法: public String creatJSON(){ String msg = textArea.getText(); JSONObject json = new JSONObject();//创建json包 json.put("message", msg); json.put("Time",Calendar.getInstance().getTimeInMillis());//获得从1970年到现在的ms值,注:Calendar的创建对象方法 json.put("From",socket.getInetAddress().getHostAddress()); json.put("Type", "toAll"); System.out.println(json.toString()); return json.toString(); }2.*/
0 0
- JAVA项目1:聊天
- Java小项目之聊天软件Chat1.1版
- 《Java项目实践》:简单聊天程序
- Java简易多用户聊天程序项目经历
- Java通信-仿QQ聊天项目
- Java聊天--聊天界面
- java聊天
- java 聊天
- Java聊天
- JAVA中DWR开发项目简单聊天实战经验
- Java小项目之聊天软件Chat1.0版
- java疑问---qq项目-----一对一聊天的疑问???
- 局域网LanQQ聊天项目
- 聊天web项目
- 局域网聊天项目
- Java 服务器端学习1------聊天程序
- Android开发智能机器人聊天项目(1)- 异步请求数据
- 练手小项目(1)——智能聊天机器人
- poj-3687 Labeling Balls
- Lua笔记7-闭包2
- Find The Multiple
- 开源项目 -- 悬浮窗口
- 为什么数组的BUFFSIZE要定义为4096比较好?
- JAVA项目1:聊天
- servlet 插入数据库乱码解决方法
- 【USACO OPEN 10】hop
- 我好换一个博客了
- ubuntu系统上splinter使用笔记
- 设计模式入门--观察者模式
- 关于Character的digit,forDigit,getNumericValue方法的一点理解
- 怎样才是理想的程序员
- lua_code_cache开关