频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

用VB设计小型网络管理系统

来源:论坛 作者:petery 出处:巧巧读书 2005-11-29 进入讨论组
3 小型网络管理系统的Winsock实现方法

  3.1 Internet上的文件传送实现方法

  当计算机A向计算机B之间要求文件(包括上传和下载)传送时,首先向计算机B发送文件传送请求——第一“握手”,之后才进行真正的文件数据传送。Winsock的SendData 方法发送的数据默认数据文件数据传送中,

  第一次握手:文件传送(上传,下载)请求数据格式:

  操作类型 文件名 文件块大小 文件块数目 最后一块大小(字节)

  0:上传 当地文件名 1kb(默认) 文件长度/块大小

  1:申请下载 远程计算机中的文件名

  第二次握手:文件传送(上传,下载)请求响应操作及回复信息

   上传响应:发送OK,告诉对方可以开始传送数据

   下载响应:传送文件块数目+块大小+最后一块字节大小

  之后,计算机之间进入真正的文件数据传送中。

  如此反复,直至文件的数据块传送完毕,在传送中间可以根据传送块的剩余数目显示进度条。

  3.2 用户登录管理

  ⑴用户登录机制

  为保证安全性,用户登录采用加密传送用户名及密码,用户登录机制如下:

  当客户机向服务器发出登录请求时,服务器生成相应的Winsock对象接收(Accept)客户机Winsock,从而建立服务器与不同的用户之间的消息通道。

  ⑵Winsock服务器建立多客户连接的方法:

  首先在服务器中建立Winsock数组Winsock1(),其中Winsock(0)进行“侦听”,当客户机发出连接请求(clintWinsock.Connect 服务器IP地址,服务器侦听端口)时Winsock(0)产生如下消息:

Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)

If Index = 0 Then ’主Winsock——Winsock(0)发生消息

i = 1

While i <= cur And onl(i, 0) = 0 ’在以前的Winsock中找到空闲的Winsock

i = i + 1

Wend

If i <= cur Then ’在当前装载的Socket中发现有用户已经离开

Winsock1(i).LocalPort = 0 ’使用现成的Socket

Winsock1(i).Accept requestID ’接收

onl(i, 0) = 0 ’Winsock(i)被占用

Else ’在当前装载的Socket中没发现有用户离开

cur = cur + 1 ’当前接收端口增加

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个用户通信

保留:: http://www.qqread.com/vb/d302107100.html 更多文章 更多内容请看系统优化大全网络管理实用手册系统安全设置专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章