此程序不适用于负数。
三、 引用Math DLL
1, 从 工程(P) 菜单中选择 引用(N) 项。
2, 单击Browse键。
3, 到刚才生成的DllMath.dll,并打开它。
4, 你可以在Available References列表的最下面到Fraction Math,并且发现在它旁边已经打了叉表明已经引用了它。
现在这个使用Visual Basic DLL的应用程序已经完成了,你已经可以制作自己的DLL了。你可以对身边的正在学C、C++、Delphi的朋友说:“需要动态链接库吗?要不要我帮你用Visual Basic做一个?”
第十五章 用Winsock控件进行Internet通信
Internet的复杂性主要来自于各种各样的通过Internet交换信息的应用程序,包括、新闻和WWW。但Internet本身却具是有良好定义的和可靠的通信协议的数字网络。在这个基础上Windows 95和Windows NT为Internet提供了诸如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方法以及RemoteHost和RemotePort来发送连接请求。本程序中,因为服务器和客户端运行在同一台机器上,所以将RemoteHost的值设为Winsock控件所检测到的LocalIP。在客户端,通过单击一个按钮来发送连接请求。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论