客户端和服务端在本机进行数据通信已经测通,可是当我把服务端放到另外一台机器上时发送一长串字符串过去(有3K)我让服务端返回发送过去的字符串,客户端接收保存字符串却被裁断了文件大小显示只有(2K),请问各位这是怎么回事,在本机却不会这样的情况
解决方案 »
- 这句vb语句意思?
- 一道VB面试题寻求答案
- 用VBA编程为何读取不了Excel中的数据
- 请教一下,两个关于vb的问题。
- 一直在研究Access+ADO+VB6,现想研究SQL+ADO+VB6,谁能给我一个上手的简单例子源码吗?
- 如何从如a123ch34jj中得到第一个数值123?
- 为控件的ToolTipText属性赋值的时候怎么样能够换行?
- ASCII码转换为中文???
- 我将一个文本框绑定到ADO对象上,如何才能做到用户一修改程序就可以发现?
- 我有个问题请教!
- Flashget为什么能这么智能下载文件呢?
- 在窗口中写数据,可添加删除,但是刷新下,在窗口中的数据就没有了,实际在数据库表中记录还在,请教是为什么?
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) '休眠API
Public strTxt As String '接收的字符串
Public socstate As Boolean '端口帧听状态Private Sub Form_Load()
LicSocket1.Close
LicSocket1.LocalPort = 3016
LicSocket1.Listen
End Sub''每隔一秒帧听一次客户端的连接
'Private Sub LicTime_Timer()
' If socstate = True Then
' Call Form_Load
' End If
' socstate = False
'End Sub'接收到客户端连接时产生
Private Sub LicSocket1_ConnectionRequest(ByVal requestID As Long)
LicSocket1.Close
LicSocket1.Accept requestID
LicSocket1.SendData "ConSucc" '返回客户端连接成功
End SubPrivate Sub LicSocket1_DataArrival(ByVal bytesTotal As Long)
Dim LicStream As TextStream '创建文件对象
Dim FSO As FileSystemObject '创建FSO对象它名括Drive、Folder、File、FileSystemObject和TextStream五个对象
Dim StrPath As String
Dim Fold As String
Dim arr
Dim hostidArray
Dim licfileArray
Set FSO = CreateObject("Scripting.FileSystemObject")
Fold = App.Path
LicSocket1.GetData strTxt
arr = Split(strTxt, "****")
hostidArray = Split(arr(2), "$$$$")
licfileArray = Split(arr(3), "$$$$") Select Case arr(0)
Case "CreatFile"
'这里接收客户端传过来的三个参数,一个为LIC文件名一个为以LIC文件名加日期的文件名和要生成的LIC模块关键字
'(file1,file2,files)调用LIC执行文件生成LIC最后再读出LIC信信返回给客户端
On Error GoTo ErrMsg
For i = 0 To UBound(hostidArray)
Set LicStream = FSO.CreateTextFile(Fold + "\" + CStr(hostidArray(i)) + "_" + CStr(Date) + ".txt", True) '创建文件
LicStream.Close
Set LicStream = FSO.CreateTextFile(Fold + "\" + CStr(hostidArray(i)) + "_" + ".lic", True) '创建文件
LicStream.Close
Set LicStream = FSO.OpenTextFile(Fold + "\" + CStr(hostidArray(i)) + "_" + CStr(Date) + ".txt", ForWriting) '写入数据
LicStream.Write licfileArray(i)
LicStream.Close
ShellExecute Me.hwnd, "Open", CStr(arr(1)), CStr(hostidArray(i)) + "_" + CStr(Date) + ".txt" + " " + CStr(hostidArray(i)) + "_" + ".lic", App.Path, 0
Sleep 1000 '这里休眠是为了使LIC线程执行完毕后再打开生成的LIC文件否则为先打开再往LIC文件里面写内容,这样会写不进去
Next i
Dim licfile() As String
ReDim licfile(UBound(hostidArray))
For j = 0 To UBound(hostidArray)
'读出数据
Set LicStream = FSO.OpenTextFile(Fold + "\" + CStr(hostidArray(j)) + "_" + CStr(Date) + ".txt", ForReading)
licread = LicStream.ReadAll
LicStream.Close
licfile(j) = licread
Next j
For m = 0 To UBound(hostidArray)
If (m <> UBound(hostidArray)) Then
licens = licens + licfile(m) + "$$$$"
Else
licens = licens + licfile(m)
End If
Next m LicSocket1.SendData "CreatOk" + "$$$$" + licens
'licens为发送的数据一次只能有2K
' For n = 0 To UBound(hostidArray)
' FSO.DeleteFile (Fold + "\" + CStr(hostidArray(n)) + "_" + CStr(Date) + ".txt")
' FSO.DeleteFile (Fold + "\" + CStr(hostidArray(n)) + "_" + ".lic")
' Next n
Case "NewCon"
Call Form_Load
End Select
socstate = True
Exit Sub
ErrMsg:
socstate = True
LicSocket1.SendData "CreatError"
End Sub
前天我在CSDN上面也找到过一个人提出过这样的问题今天再也找不到了,该怎样解决呀
doevents
DoEvents
ErrMsg:
socstate = True
LicSocket1.SendData "CreatError"
DoEventsEnd Sub没天理呀,我把后面加了DoEvents可是返回的结果还是跟之前一样字符串被裁断了。我想知道DoEvents是起什么作用的