资源简介
代码+问题分析+解决方案
实践内容:
编写简单的多线程 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源代码
- 下一篇:卷积码的译码的两种算法
相关资源
- SpringBoot+H2+mybatis-plus59130
- 登录注册界面.zip48872
- 数字华容道
- SSM+Shiro+redis实现单点登陆
- jstl-api-1.2和jstl-impl-1.2
- 通信软件的具体实例──基于Socket的
- 基于MVC模式的会员管理系统
- 国内一家大型软件公司内部的正规软
- 仿windows记事本
- 用Socket编程实现FTP
- websocket实现一对一聊天
- GUI银行管理系统
- 超市收银系统eclipse access大学课程设计
- 模拟ATM柜员机系统--连接数据库
- 代码客:G-TcpServer(IOCP) 1.0 正式版及
- SOCKET 网络编程 计算机网络 作业 客户
- A*算法的2D演示(带源码)
- linux 网络实验 ftp程序
- 毕业设计:网络围棋对弈
- 代码审查表和代码审查实例
- 用Socket写的简易FTP服务器和客户端
- socket小工具(可方便建立TCP UDP的soc
- socket客户端源码
- 仿126 网易 163 邮箱 界面
- Tomcat6.x
- 基于CSocket的多人聊天室
- 简单的行编辑器
- 采用WINSOCK2 编写的TCP/UDP通信程序
- socket文件传输源码
- 扫雷(MVC架构)
评论
共有 条评论