中华网校

系列网站: 中华网校 | www.网校.com | 3D模型 | 中华网校教育

电脑网校 | 业界新闻 | 职业网校 | 网校宝典 | 软件下载 | 网校论坛 | 网校联盟

电脑入门 | 网页设计 | 网络编程 | 图形图象 | 三维空间 | 多媒体 | 程序语言 | 操作系统 | 系统专题 | 办公应用 | 软件宝典 | 硬件天下 | 

 

您的位置:首页 >> 程序语言 >> VB/VB.NET >> 新闻正文

用VB编写网络寻呼机  

作者:_  时间:2001-10-12 14:42:59  来自:中华网校  责任编辑:  阅读次数:

作者:岳兵


提起ICQ的大名,爱好电脑的朋友一定不会感到陌生的吧?ICQ就是互联网上的寻呼机,无论什么时候,只要你的朋友在线,你只需在ICQ中输入他的ID号码,你就可以在互联网上呼到他。ICQ由于其方便、快捷,且拥有众多的注册用户而一举成为互联网上最流行的网络寻呼机,它几乎成为每一个上网用户的必备之物。当你在使用ICQ的时候,是否会想过自己动手编写一个网络寻呼机呢?这其实在VB中就可以实现。
---- 网络寻呼的原理就是当客户端程序连接服务器时,通过服务器搜索所要呼叫的ID号码,如果检测到此用户且该用户正处于联网状态,则服务器通知此用户的客户端程序响应主叫方客户端程序,然后在主叫方和被叫方建立连接后,双方就可以聊天或进行其它的通信。

---- 在VB中编写网络寻呼机需要建立两个程序,一个为客户端程序Client,一个为服务器端程序Server。

---- 一、在Client工程中建立一个窗体,加载WinSock控件,称为tcpClient,协议选择TCP。再加入四个文本框,用以输入服务器的IP地址、服务器端口号,被呼叫的网络寻呼ID号以及用户登录ID号。然后再在窗体中加入三个按钮,分别命名为“连接”、“断开”和“退出”,点击“连接”按钮,并进行如下初始化连接,代码如下:

Private Sub Command1_Click()
If Len(Text1.Text) = 0 And Len(Text2.Text) = 0 Then
MsgBox ("请输入主机名或主机IP地址。")
Exit Sub
ElseIf Len(Text1.Text) > 0 Then
tcpClient.RemoteHost = Text1.Text
tcpClient.RemotePort = Text2.Text
          End If
          tcpClient.Connect
          Timer1.Enabled = True
End Sub

Private Sub Command2_Click()
  tcpClient.Close    断开连接
End Sub

Private Sub Command3_Click()
  End
End Sub

Private Sub Form_Load()
  Text2.Text = "1001"
End Sub

Private Sub tcpClient_Connect()
tcpClient.SendData (Text3.Text&"@"&Text4.Text)
End Sub

Private Sub tcpClient_DataArrival(ByVal
bytesTotal As Long)
Dim strData As String
tcpClient.GetData strData
strData = strData + "呼叫" 
在收到呼叫消息后弹出一对话框并显示主叫方ID号码
MsgBox (strData)
End Sub

---- 二、在服务器端Server工程中也建立一个窗体,加载WinSock控件,称为tcpServer,协议选择TCP,设置其Index值为0,并在工程中添加模块。
---- 内容如下:

Private Type ActiveUser
ClientIP As String        记录客户的IP地址
ClientPort As Integer     记录当前会话的端口
ClientID As Long          记录客户的ID号码
ClientConnected As Boolean   
客户连接状态,True表示已连接,False表示没有连接
End Type
Dim CurUser() As ActiveUser
Dim tcpIndex As Integer    跟踪当前建立连接数

在Form_Load事件中加入如下代码:
Private Sub Form_Load()
    tcpServer(0).Protocol = sckTCPProtocol
    tcpServer(0).LocalPort = 1001
     将 LocalPort 属性设置为一个整数。
    tcpServer(0).Listen     然后调用 Listen 方法。
    tcpIndex = 1
End Sub

---- 准备应答客户端程序的请求连接,使用ConnectionRequest事件来应答户端程序的请求,代码如下:
Private Sub tcpServer_ConnectionRequest
(Index As Integer, ByVal requestID As Long)
    Dim i As Integer
    On Error GoTo ErrHandle
    For i = 1 To tcpIndex    选择一个空闲端口
        If CurUser(i).ClientConnected =
False And i < > tcpIndex Then
           Load tcpServer(i)
tcpServer(i).LocalPort = CurUser(i).ClientPort - 1
           tcpServer(i).Accept requestID
           Exit For
ElseIf CurUser(i).ClientConnected = False Then
            Load tcpServer(i)
            tcpServer(i).LocalPort = Port
If tcpServer(i).State < > sckClosed Then
                tcpServer(i).Close
            End If
            tcpServer(i).Accept requestID
           Exit For
        End If
    Next
    DoEvents
     测试连接是否成功
    If tcpServer(i).State = sckConnected Then
        If i = tcpIndex Then     
         已经没有可用端口,记录客户的IP地址和端口号
            tcpIndex = tcpIndex + 1
            Port = Port + 1
            ReDim Preserve CurUser(tcpIndex)
   CurUser(i).ClientIP = tcpServer(i).RemoteHostIP
   CurUser(i).ClientConnected = True
   CurUser(i).ClientPort = Port
   CurUser(tcpIndex).ClientConnected = False
   Else
   CurUser(i).ClientIP = tcpServer(i).RemoteHostIP    用VB编写网络寻呼机   共有2页  1  2 页

相关文章 最新文章 推荐文章
RC4经典加密算法VB版本代码
VB 6 问答
优化VB程序
vb开发人员操作规程
用VB编屏幕保护快速设定程序
VB的座标系统
VB:开发CAI软件的小经验
用VB编写网络寻呼机

  中华网校依法保护知识产权,如果我们的文章有涉及或侵犯您的有关权益,请即时与我们 联系, 注明网址及文章,我们会即时处理或删除,感谢您的合作!中华网校email
  中华网校由广州市中六电脑城智锐计算机专业培训学院及中华网校技术中心提供网络支持未经本站许可任何个人网站、书刊报社一律不得私自复制,转载本站内容!

关于中华网校 | 广告服务 | 版权声明 | 投稿指南 | 网站合作 | 友情链接 | 网站地图

 

版权所有 中华网校 & 智锐网校 1999-2004 COPYRIGHT (C) 1999-2004 www.ZhiRui.com ALL RIGHTS RESERVED

 
/**/