⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 history.txt

📁 一个C语言的聊天室源代码
💻 TXT
字号:
修改http.h中的RequestData结构,增加客户端IP记录项。
修改thread:WebChild将/cmd?[command]的处理程序,转移至func模块。
修改web:login.js将OnRegister中的连接指向register.htm,并建立register.htm文件,使用post方式向服务器提交/cmd?Register指令完成注册。

[2001/07/02] 目前的源程序包(开发版0.1.2):schat-2001-06-05.zip
  修改http:GetRequestInfo的读取数据部分,增加函数Recv用于读取数据,Recv读取数据具有超时检测功能。
  修改system, roomuser使用新的数据库封装库。
  修改mysqlfunc对MySQL连接库进行再次包装,对数据库连接长时间不通信出现连接关闭等问题增加了处理程序。
  修改http:GetRequestData的Check POST Data部分对慢速网络数据延迟做了处理,在300s后放弃处理。


[2001/06/05] 目前的源程序包(开发版0.1.1):schat-2001-06-05.zip 
  修改thread:WebChild在/cmd?Enter部分一时疏忽if( up1->status && 0x4000 )多写了一个&,登陆页面上的包厢开关不起作用。 
  修改http:GetRequestData在Check POST Data中strncpy(form,buf,length)处理之后又增加了form[length]='\0',提高代码的可靠性,如果不这样做在某些系统上会出现错误。 
  修改thread:WebChild在Logout部分把parent.close()改成了top.close(); 
  修改thread:WebChild对Normal GET和POST的处理部分做了修改可以处理test.html?abc=def这样的请求格式了。 


[2001/06/03] 目前的源程序包(稳定版0.1.0):schat-2001-06-04.zip 
  增加testform.htm用于测试系统处理表单的状况。 
  修改database.txt增加了几个用于测试的账号test1 -- test9,密码与用户名相同。 
  修改thread:WebChild预留了查找,在线列表,注册的接口。 
  增加func部分,用于扩展功能:注册,查找,在线列表,踢人等。 
  修改http:GetRequestData的Check POST Data部分,在执行strncpy(form,buf,length)时,由于buf中的最后可能含有不属于数据的换行符号,超过了数据长度length,从而造成溢出。 
  修改thread:WebChild增加对RDp的非空判断,增加一点提示信息。 
  修改http:GetRequestInfo对从浏览器发来的请求数据按照行分割后,再删除'\r',增加一个处理语句(两个地方)del_ch(sp1->msg,'\r')。 
  修改http:GetRequestData增加对p->Request的非空判断。 


[2001/06/03] 目前的源程序包(开发版0.0.9):schat-2001-06-03.zip 
  增加mysqlfunc:MyDB数据结构,但是没有使用,考虑到mysql连接长时间没有数据通信可能会断掉,目前没有遇到这个问题,所以预留接口。 
  修改mysqlfunc:MySqlQuery增加调试信息。 
  扩展roomuser:USERINFO结构中的数组一个字节,用于存储字符串结束符:'\0'。 
  扩展roomuser:ROOMINFO结构中的数组一个字节,用于存储字符串结束符:'\0'。 
  扩展roomuser:CHATMSG结构中的数组一个字节,用于存储字符串结束符:'\0'。 
  修改socketfunc:IncSocketBuf把sysinfo.SocketLeftWarning改为sysinfo.SocketLeftWarning*2 
  修改msg:AddWords对printf("Roomid: %d, ID=......",......);进行了简单的修改,输出调试信息。 
  修改socketfunc:GetSocketIP把addrlen=MAXSOCKADDR;改成addrlen=sizeof(struct sockaddr_in);解决在Solaris下内存溢出的问题。 
  增加roomuser:GenUID用来生成SessionID,加密用户的连接密码 
  修改roomuser:GetRN的型参类型char *id改成int id 
  修改roomuser:GetRP的型参类型char *id改成int id 
  修改thread:webchild将/cmd?Login分成两部分:/cmd?Login和/cmd?Enter,引入SessionID用于用户认证。 
  增加thread:WriteRedirct负责发送重定向http头 


[2001/05/18] 目前的源程序包(开发版0.0.8):schat-2001-05-18.zip 
  修改say.htm,chatmain.htm,msg.c:AddWords增加清屏操作。 
  修改say.htm修正了察看历史记录的bug。 
  修改say.htm,chatmain.htm支持滚屏控制。 
  修改socketchat.c把schat.pid放在web目录的上一级,兼容*nix操作系统。 
  增加http.h:DefaultHTML方便对缺省请求的设置#define DefaultHTML "login.htm"。 
  修改thread.c:WebChild的部分支持缺省请求的设置。 
  修改http.c:GetFormVarValue和GetQueryVarValue,以后这两个函数将直接返回在RequestData链表中的数据,不再另外申请内存,返回数据。 
  把处理浏览器请求信息的程序,独立出来,增加了几个处理函数(http.c),同时增加了相应的数据结构:RequestData和RequestInfo,下面是新增函数列表:
	RequestInfo *GetRequestInfo(int ,char *);
	char * GetRIVarValue(RequestInfo *,char *);
	RequestInfo * FreeRI(RequestInfo *);
	RequestData * GetRequestData(int);
	RequestData * FreeRD(RequestData *); 
  增加base.c:StrLen,Strcmp和StrnCmp几个函数壳,修改所有的代码,使用这几个壳,不再直接使用原有系统函数。 
  修正database.txt错误,现在可以直接使用mysql -u root -p[password] < database.txt命令建立数据库了! 


[2001/04/11] 目前的源程序包(开发版0.0.7):schat-2001-04-11.zip 
  感谢zzjie制作了FreeBSD下的安装说明。 
  修改say.htm 将saywhat[i]=waywhat[i+1];改为saywhat[i]=saywhat[i+1]; 
  修改msg.c:AddWords将javascript:SelectUser改为javascript:parent.SelectUser 
  修改msg.c:WebChild里的logout部分,一些小的修改。 
  修改socketfunc:AntiTimeOut 有人掉线的话,强制输出信息 
  修改msg:SendData 区分发往不同房间的信息,支持私聊 
  修改roomuser:OutPutUserList 输出用户在线列表时区分房间 
  修改socketfunc:AddSocket 增加控制语句,正常显示最高在线人数 
  修改http:GetFormData 修正发言中的“=”后面的信息没有输出的错误,同时对应修改thread:WebChild表单处理部分 
  修改thread:WebChild里的表单处理部分,对于a2c()的过滤位置进行了修正 
  修改msg:AddWords 增加了对“<”“>”的过滤和转换 
    
[2001/03/07] 目前的源程序包(开发版0.0.6):schat-2001-03-07.zip 
  增加文档 <HTTP 1.1状态代码及其含义> 
  修改了thread.h文件,解决宏定义PTHREAD_THREADS_MAX的未定义问题,支持在Solaris下的编译 
  修改了thread.c文件,把线程锁变量mlock改名为acclock,避免在Solaris下的冲突 
  修改了socketchat.h文件,解决宏定义SIGCLD的未定义问题,支持在System V和FreeBSD下的编译 
  修改了login.htm,chatmain.htm,say.htm三个模版 
  在roomuser中增加了logout(),outputuserlist(),outputroomlist()函数 
  在socketfunc中增加了delsocket清理退出用户的socket连接 
  修改了cache模块中的GetFileData,增加返回数据长度的功能 
  重写了msg中的AddWords。 
  还有其它一些小的改进,这次的程序变动比较大,请大家仔细的把程序看一下,多提意见和建议。 
  版本0.0.5因功能不完善,没有发布。 
    
[2001/02/11] 目前的源程序包(开发版0.0.4):schat-2001-02-11.zip 
  为了以后开发的方便,把schat.c进行了拆分,分成11个模块 
  完善了缓存机制(Cache模块),增加了存储文件长度的变量和记录文件最后更新时间的变量,根据最后更新时间判断是否刷新缓存 
  使用MySql数据库,存储房间,用户数据。 
  对right.htm做了修改,进入房间后,在right.htm的头部显示相应的房间名称 
    
[2001/02/05] 目前的源程序包(开发版0.0.3):schat-2001-02-05.zip 
  更详细的开发文档(Word2000格式)。 
  修正了bugs。 
    
[2001/01/10] 目前的源程序包(开发版0.0.2):schat-2001-01-10.zip 
  增加了简单的开发文档。 
  解决了判断用户端关闭了浏览器的问题。 
  修改了线程创建函数(不知道在Solaris下的问题解决没有,请大家帮忙测试) 
  整理了一下源代码,增加了更多的注释 
    
[2001/01/04] 目前的源程序包(开发版0.0.1):schat-2001-01-04.zip 
  源代码没有进行整理,比较乱,有时间我会整理一下的。 
  编译方法:解开文件,chmod +x r然后./r就ok 
  系统主体采用多线程设计,采用C语言编写,在linux2.2.16下开发调试。 
  已经完成了WebServer支持部分,HTML页面设计部分。 
  设计了简单的用户数据存储结构,今后要改为MySQL接口。 
  能够进行登陆认证了。 
  到了处理用户关闭浏览器的时候卡住了,该歇歇了。 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -