此程序不适用于负数。
三、 引用Math DLL
1, 工程(P 菜单中选择 引用(N) 项。
2, 单击Browse键。
3, 到刚才生成的DllMath.dll,并打开它。
4, 你可以在Available References列表的最下面到Fraction Math,并且发现在它旁边已经打了叉表明已经引用了它。
现在这个使用Visual Basic DLL的应用程序已经完成了,你已经可以制作自己的DLL了。你可以对身边的正在学CC++Delphi的朋友说:“需要动态链接库吗?要不要我帮你用Visual Basic做一个?”
第十五章        Winsock控件进行Internet通信
Internet的复杂性主要来自于各种各样的通过Internet交换信息的应用程序,包括、新闻和WWW。但Internet本身却具是有良好定义的和可靠的通信协议的数字网络。在这个基础上Windows 95Windows NTInternet提供了诸如Winsock等标准接口。而Visual Basic则通过Winsock ActiveX控件为Winsock提供了标准接口。Winsock的目的非常简单:为两个或多个Internet节点建立连接并使之交换数据。下面我们以一个简单的应用程序来看看这个过程。
§1 Winsock服务器
本工程用TCP协议为客户端和服务器端建立连接。对实际的Internet应用程序而言。可能需要两个独立的应用程序。但现在为简单起见,我们在一个应用程序中,为客户端和服务器端建立两个不同的窗体。
我们需要下表所列的控件。
名称
类型
属性
lblIPAddress
Label
Caption
“”
lblStatus
Label
Caption
“”
sktTCPChatServer
Winsock
Protocol
0-sckTCPProtocol
txtDataReceived
TextBox
Text
“”
txtDataToSend
TextBox
Text
“”
1,倾听Winsock连接
Internet上每个服务器应用程序都通过IP地址和端口号两个数字来标识。服务器正是通过这两个数字来倾听连接请求。每个Internet节点,即有特定IP地址的计算机,都可运行多个服务器,只要这些服务器倾听的端口号不同。
在程序中,我们将Winsock控件的LocalPort设为1600。由于IP地址由服务器运行的计算机确定,因而无需设定。调用Listen方法,服务器便开始监听Internet的连接请求,这样就激活了服务器程序。
2,建立Winsock连接
当客户端向合适的IP地址和端口号发送连接请求时,Winsock控件便会产生ConnectionRequest事件。在ConnectionRequest事件中调用Accept方法,并将所接收的RequestID作为事件过程的参数,就可以在服务器和客户端之间建立连接。
3,交换数据
使用Winsock控件的SendData方法,就可以向客户端发送数据。Winsock控件收到客户端的数据时,先调用DataArrival事件过程,然后,再通过GetData方法从通信缓冲区中获得数据。
下面是服务器窗体的代码:
Option Explicit
Private Sub Form_Click()
    Print sktTCPChatServer.LocalIP
End Sub
Private Sub Form_Load()
    frmClient.Show
    sktTCPChatServer.LocalPort = 1600 ' Set the local port.
    sktTCPChatServer.Listen          ' Use the Listen method.
    lblIPAddress.Caption = sktTCPChatServer.LocalIP
    lblStatus.Caption = "Host Name: " & sktTCPChatServer.LocalHostName
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    'Dim ArrayIndex As Integer
   
    Unload frmClient
vb视频教程下载End Sub
Private Sub sktTCPChatServer_Close()
    lblStatus.Caption = "Disconnecting from " & sktTCPChatServer.RemoteHostIP
   
    ' Return to listening state.
    sktTCPChatServer.Close
    sktTCPChatServer.LocalPort = 1600
    sktTCPChatServer.Listen
End Sub
Private Sub sktTCPChatServer_ConnectionRequest(ByVal requestID As Long)
    Dim Dummy As String
   
    If sktTCPChatServer.State <> sckClosed Then
        sktTCPChatServer.Close
    End If
    sktTCPChatServer.Accept requestID
    lblStatus.Caption = "Connecting " & sktTCPChatServer.RemoteHostIP
End Sub
Private Sub sktTCPChatServer_DataArrival(ByVal bytesTotal As Long)
    Dim DataReceived As String
   
    sktTCPChatServer.GetData DataReceived, vbString
    If CStr(DataReceived) = "QUIT" Then
        sktTCPChatServer_Close
    Else
        txtDataReceived.Text = DataReceived
    End If
End Sub
Private Sub txtDataToSend_Change()
    sktTCPChatServer.SendData txtDataToSend.Text
End Sub
§2 Winsock客户端
对客户端而言,先创建类似于服务器的窗体,下表列出了客户端所用的六个控件。
名称
类型
属性
cmdConnect
CommandButton
Caption
连接
cmdCloseConnect
CommandButton
Caption
关闭连接
lblStatus
Label
Caption
“”
sktTCPChatClient
Winsock
Protocol
0-sckTCPProtocol
txtDataReceived
TextBox
MultiLine
True
txtDataToSend
TextBox
MultiLine
True
1,连接到服务器上
客户端和服务器的主要区别在于建立连接的方式不同。服务器通过倾听建立连接,而客户端则是用Winsock控件的Connect方法以及RemoteHostRemotePort来发送连接请求。本程序中,因为服务器和客户端运行在同一台机器上,所以将RemoteHost的值设为Winsock控件所检测到的LocalIP。在客户端,通过单击一个按钮来发送连接请求。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。