资源简介
代码+问题分析+解决方案
实践内容:
编写简单的多线程 web服务器
实现过程:
该实验我做的是一个聊天系统,实现的功能是:
服务端可以任意指定一个端口号建立服务器,等待的客户的连接,若有客户连接上,则有相应的提示,断开连接也有相应的提示,此外服务器可以向所有在线用户广播消息,也可以查看客户的聊天记录!
客户端需要填写服务器的IP及端口号及自己的ID方可连接服务器,客户端只要一连接上服务器就可以看见目前的上线人数,选择其一就可以与其聊天,你也可以和自己聊天来取乐!
代码片段和文件信息
package client;
//客户端通信线程
//Client.java
import java.util.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
class Client extends Thread {
Socket socket_0931;
InetAddress host_0931;
int port_0931;
String name_0931;
BufferedReader in_0931;
PrintStream out_0931;
String message_0931;
ClientGUI chat_0931;
public Client(String Address int port String name ClientGUI chat) {
try {
host_0931 = InetAddress.getByName(Address);
this.port_0931 = port;
this.chat_0931 = chat;
this.name_0931 = name;
} catch (IOException e) {
chat.receiveMsg
.append(“The constructor of Client encounters a problem!“
+ e.toString());
}
}
public void run() {
try {
socket_0931 = new Socket(host_0931 port_0931);
chat_0931.receiveMsg.append(“连接成功!\n“);
out_0931 = new PrintStream(socket_0931.getOutputStream());
out_0931.println(name_0931);
out_0931.flush();
in_0931 = new BufferedReader(new InputStreamReader(socket_0931
.getInputStream()));
while (true) {
message_0931 = in_0931.readLine();
if (message_0931.startsWith(“添加用户“)) {
chat_0931.lists.add(message_0931.substring(4));
} else if (message_0931.startsWith(“删除用户“)) {
chat_0931.lists.remove(message_0931.substring(4));
} else {
//chat_0931.receiveMsg.append(“\n“);
chat_0931.receiveMsg.append(message_0931 + “\n“);
}
}
} catch (SocketException e) {
chat_0931.receiveMsg.append(“连接失败!\n“);
chat_0931.connect.setEnabled(true);
chat_0931.lists.removeAll();
try {
socket_0931.close();
} catch (IOException er) {
chat_0931.receiveMsg.append(“1-“ + er.toString());
}
} catch (IOException e) {
chat_0931.receiveMsg.append(“2-“ + e.toString());
}
}
public void messageSend(String message) {
out_0931.println(message.trim());
//out_0931.println(“\n“);
out_0931.flush();
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1132032 2010-04-18 16:33 李亚方实践报告.doc
文件 1968 2010-04-15 19:53 实验五\client\Client.java
文件 4535 2010-04-15 19:57 实验五\client\ClientGUI.java
文件 2028 2010-04-15 17:31 实验五\client\ClientLogin.java
文件 2919 2010-04-15 17:32 实验五\server\Server.java
文件 2472 2010-04-07 21:40 实验五\server\ServerGUI.java
文件 1444 2010-04-16 00:09 实验五\server\ServerThread.java
目录 0 2010-04-12 22:12 实验五\client
目录 0 2010-04-12 22:12 实验五\server
目录 0 2010-04-12 22:12 实验五
----------- --------- ---------- ----- ----
1147398 10
- 上一篇:一个完整的心电检测系统文档硬件,软件说明和C源代码
- 下一篇:卷积码的译码的两种算法
相关资源
- 企业日常事务管理系统
- UDP socket 多线程
- 基于SSH的学生选课系统
- Maven+SSM项目
- Libero-SoC集成开发环境使用教程超级详
- HPSocket4C 静态库32和64位版本
- 局域网聊天qq
- 电子商务系统
- 毕向东25天的所有教程过程详细笔记
- 基于SSM架构的在线考试系统设计文档
- 机房排课系统的设计与实现毕业论文
- 基于SpringBoot+vue的前后端分离工资绩效
- slf4j 1.6.4
- socket网络编程服务端程序支持多客户
- vue_ntko_demo.zip
- 一套自己花钱买的Web统计报表控件(
- 在线阅读系统毕业设计完整项目
- 用okhttp实现webSocket长连接
- drools 部署后tomcat配置打包
- 酒店管理系统最终答辩版本
- webservice+jdbc
- Machine Learning Systems Designs that Scale
- 网上订餐系统的设计及实现
- 基于ssh的增删改查小型erp
- Distributed Systems: Principles and Paradigms
- 作业批改系统
- 电影购票系统
- springboot 培训课程md文档
- 快递物流管理系统需求分析完整版
- 仿微信聊天软件Socket实现包含客户端
评论
共有 条评论