关于mswinsck.ocx问题,怎么关闭连接,继续执行下面的程序?

zhengli1999 2005-10-18 02:07:07
Private WithEvents objWinSock As MSWinsockLib.Winsock
Private bConnected As Boolean

Public Sub connect()
Set objWinSock = New MSWinsockLib.Winsock
Dim dtStart As Date
dtStart = Now()
objWinSock.Protocol = sckTCPProtocol
objWinSock.RemoteHost = "192.168.0.98"
objWinSock.RemotePort = 9000
objWinSock.connect
Do Until bConnected
DoEvents
If DateDiff("s", dtStart, Now) > 30 Then
Err.Raise vbObjectError, "Error", "连接超时"
End If
Loop
objWinSock.SendData "11166"
Do Until objWinSock.State = sckClosing
DoEvents
Loop
objWinSock.Close
End Sub

Private Sub objWinSock_DataArrival(ByVal bytesTotal As Long)
Dim strTemp
objWinSock.GetData strTemp, vbString
strData = strData & strTemp
End Sub

Private Sub objWinSock_Connect()
bConnected = True
End Sub

Private Sub objWinSock_Error(ByVal Number As Integer, Description As String, _
ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, _
ByVal HelpContext As Long, CancelDisplay As Boolean)

Err.Raise vbObjectError, "Error", "Winsock Error: " & Number & vbCrLf & Description
CancelDisplay = True
End Sub
=====================================================
上面是我用VB写的一个DLL的源程序.

以下是调用这个DLL的ASP文件.
=====================================================
<BODY>
<%
Dim obj
Set obj = Server.CreateObject("congc2.concls2")
obj.Connect()
set obj=nothing
%>
发送成功
</BODY>
=====================================================
目前我服务器已经可以接收到"11166"这个数据.
但是..asp页面就一直不能继续执行输出"发送成功",出现假死状态

请问我要怎样发送数据后.显示"发送成功"的提示?.

...全文
188 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengli1999 2005-10-19
  • 打赏
  • 举报
回复
都没有人回答...
自己解决,贴出答案大家共享

主要是修改了原来的Connect()函数
调试成功后,代码如下:

Public Function connect() As String
Set objWinSock = New MSWinsockLib.Winsock
Dim strCmd
Dim dtStart As Date
dtStart = Now()
objWinSock.Close
objWinSock.Protocol = sckTCPProtocol
objWinSock.RemoteHost = "192.168.0.98"
objWinSock.RemotePort = 9000
objWinSock.connect
Do Until bConnected
DoEvents
If DateDiff("s", dtStart, Now) > 30 Then
Err.Raise vbObjectError, "Error", "连接超时"
End If
Loop
strCmd = "11166" & vbCrLf
objWinSock.SendData strCmd
DoEvents
Do While objWinSock.State = 8
If DateDiff("s", dtStart, Now) > 60 Then
Err.Raise vbObjectError, "Error", "请求超时"
End If
Loop
objWinSock.Close
connect = "发送OK成功."
End Function
zhengli1999 2005-10-18
  • 打赏
  • 举报
回复
-_-!不是吧...上面那段是用VB6.0写的DLL
我是照着网上的资料写的...
你印象中是什么样的哦?
red_free 2005-10-18
  • 打赏
  • 举报
回复
郁闷。完全看不懂么。。。。。
跟我印象中的socket不是一个样子了。。555555555555555555

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧