我爱Aspx >> Asp.Net >> 基于Winsock 的小型网络管理系统及其实现Load Winsock1(cur) '生成新的' Winsock
Winsock1(cur).LocalPort = 0
Winsock1(cur).Accept requestID '接收
onl(cur, 0) = 0 'Winsock(cur)被占用
End If
End Sub
之后,服务器利用生成的Winsock(i)与第i个用户通信。
3.3 小型邮件系统
我们建立了用户数据库和邮件数据库,在前面叙述的用户登录的实现下,进行用户的邮件管理;此时涉及到数据管理。数据库结构如下:
⑴用户数据库结构:
userid 用户编号
name 用户名
chinesename 姓名
code 口令
pp 权限
dscrp 描述
⑵邮件数据库结构:
Msgid 消息编号
Receiver 接收者
Sender 发送者
Style 类型
Word 消息文字
Get 接收否
Sj 消息得到时间
bj 消息附属信息
当用户登录后,服务器从邮件数据库中提取Receiver是该用户并且消息为新(Get字段值为“新”)的记录,把之打包,利用用户Winsock对象发送。
服务器同时提供客户的命令要求,然后对之进行相应的操作:
客户命令格式:
邮件命令 Chr(13)
回车符分隔命令数据 0读新邮件
1读旧邮件
2读所有邮件
3删除邮件 删除邮件时,需提供要删除的邮件编号(在用户登录时已经连同邮件一起发送)
服务器响应命令:发送邮件数据,字段之间用回车符隔开,在邮件内容中对其进行信息处理——对回车符进行编码,比如用%0代替,而%用%%代替。或者发送删除成功消息,删除失败消息,读取失败消息——这些特殊消息可以在消息前端用一个字符区分数据或消息及消息类型。
3.4 聊天室
显然利用上面所述的用户登录机制,我们可以在服务器中建立聊天室,进行实时对话。同样我们可以使用特殊的消息管理方法,进行聊天管理;如下:
Select Case 命令的第一个字节
Case "0" '进入会议室
For i = 1 To cur '通知其他在线用户有用户上线
If onl(i, 0) = 0 Then Winsock1(i).SendData "0" + get_un(Index) + Chr(13)
Next
Case "1" '离开会议室
For i = 1 To cur '通知其他在线用户有用户离线
If onl(i, 0) = 0 Then Winsock1(i).SendData "1" + str(onl(Index, 1)) + Chr(13)
Next
Case "2" '发言
If 第二字节 = "0" Then '向所有用户说话
For i = 1 To cur '把话送往所有用户
Ҷƪл˵?
怎样手工声明API[05-05]
多用户广告轮播的实现[05-05]
英文版软件编写语言使用技巧[05-05]
怎么利用PHP去ping一个地址[05-05]
利用VC++获取异构型数据库库结构..[05-05]
世界著名搜索引擎及其搜索格式[05-05]
Displays the indicated Windows..[05-05]
如何往IE工具条添加按钮[05-05]
位 图 文 件 内 部 初 探[05-05]
日本i-mode导入新服务[05-05]