科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用VB设计小型网络管理系统

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文主要讨论Internet上小型网络信息管理系统的实现,并提供了其基于WinSock控件的设计方法。

作者:petery 来源:论坛 2007年10月15日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
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个用户通信。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章