项目名称:在线聊天系统
步骤:
1.建一个新项目,写一个client客户端的基本框架(一个窗口)
2.加上事件监听器,可以关闭窗口
注意,每次新增加一些东西在项目里,要把原来的项目保存在一个新建项目中,以防之后修改麻烦
3.再写一个类作为server端,这两个新类要和原来的框架类联系起来,通过连接网络,要导入java.net*包
注意,不能在一个静态类中new一个动态对象,处理方法是可以把它单独封装在一个方法中,在主函数里直接调用。
4.目前第一条消息可以上传到服务器,但之后的消息都不行,针对这里对accept函数的位置进行修改,使得能无限次接受消息
5.连接成功后在对话框输入后回车,可以把信息传到服务器上,但是再开一个client窗口后的信息就无法上传,要想处理好多个数据段的连接,可以用线程的方式,主线程不断接收客户端连接,然后包装好单独接到一个线程内
小技巧:try catch块很多,看主要逻辑只看try里面的,第一遍不好写可以把try块改成throws直接抛出异常
6.多个客户端发出消息到服务器上,同时接收其他服务器的消息
遍历循环发送客户端内容的三种方法
for(int i=0;i<clients.size();i++) {
Client c = clients.get(i);
c.send(str);
}
for(Iterator<Client> it = clients.iterator() ; it.hasNext(); ) {
Client c = it.next();
c.send(str);
}
Iterator<Client> it = clients.iterator();
while(it.hasNext()) {
Client c = it.next();
c.send(str);
}