服务端收到客户端A的连接请求后,创建一个新线程,与客户端A建立连接;
服务端收到客户端B的连接请求后,创建一个新线程,与客户端B建立连接;
具体问题:(服务端部分代码)
[DLL]
Public Sub CRequest(ByVal requestID As Long)
On Error GoTo ErrorHandler:
Form1.Winsock1_ConnectionRequest Trim(requestID)
Exit Sub
ErrorHandler:
Err.Raise Err.Number, m_cClassName & "=>" & Err.Source, Err.Description
End Sub
[APP]
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Set m_oAsyncObject = New AsyncObject
'... Specify the AutoCloseLogic
m_oAsyncObject.AutoCloseEnabled = True
With m_oAsyncObject.AutoCloseLogic
.UseFreezeEvents = True
.UseCancelObject = False
.WaitTimeOut = 5000
.ForceClose = True
End With
'... Create a clsDB object on a background thread
m_oAsyncObject.CreateWorker "ExSocketDLL.cls"
'... Display the thread IDs
lblAppThreadID.Caption = " Application ThreadID: " & App.ThreadID
lblWorkerThreadID.Caption = " cls ThreadID: " & m_oAsyncObject.ThreadID
m_oAsyncObject.AsyncCall.Begin_CRequest requestID
End Sub
错误:DLL端总是提示“描述符不是一个套接字”错误。
各位大哥帮帮忙,欢迎大家提意见及解决方法。来者有分,不够再加!!!!
(不能用动态挂载Winsock控件的方法)
13 个解决方案
#1
能不能把dll端的代码全部贴出来?
#2
这个基本上就是全部的代码了。DLL端有个Form1,Form1中有个Winsock1
#3
版主老大,帮帮忙。
#4
非要用多线程解决这个问题吗 不用多线程也能解决多客户端的问题啊 我也明听说 vb能做出稳定的多线程
#5
zyg0大哥:
“不用多线程也能解决多客户端的问题啊”
如何解决?动态的挂载Winsock控件吗?
“不用多线程也能解决多客户端的问题啊”
如何解决?动态的挂载Winsock控件吗?
#6
顶
#7
顶
#8
顶
#9
再顶
#10
再再顶
#11
事实上
你不用自己创建线程的
因为winsock在有动作的时候会自动创建一条线程的
如果你的线程仅仅是为了连接,就多此一举了
你不用自己创建线程的
因为winsock在有动作的时候会自动创建一条线程的
如果你的线程仅仅是为了连接,就多此一举了
#12
一个连接创建一个线程是为了实现多客户端的异步连接
#13
连接怎么个"异步"法...
#1
能不能把dll端的代码全部贴出来?
#2
这个基本上就是全部的代码了。DLL端有个Form1,Form1中有个Winsock1
#3
版主老大,帮帮忙。
#4
非要用多线程解决这个问题吗 不用多线程也能解决多客户端的问题啊 我也明听说 vb能做出稳定的多线程
#5
zyg0大哥:
“不用多线程也能解决多客户端的问题啊”
如何解决?动态的挂载Winsock控件吗?
“不用多线程也能解决多客户端的问题啊”
如何解决?动态的挂载Winsock控件吗?
#6
顶
#7
顶
#8
顶
#9
再顶
#10
再再顶
#11
事实上
你不用自己创建线程的
因为winsock在有动作的时候会自动创建一条线程的
如果你的线程仅仅是为了连接,就多此一举了
你不用自己创建线程的
因为winsock在有动作的时候会自动创建一条线程的
如果你的线程仅仅是为了连接,就多此一举了
#12
一个连接创建一个线程是为了实现多客户端的异步连接
#13
连接怎么个"异步"法...