我是菜鸟,在vb中用winsock控件编写一个代理程序遇到Byte数据包与String字符串转换的问题,我的目的是要将Byte数据包转换成String字符串以便查看并且修改数据包内容,然后又将修改了的数据包内容转换成Byte数据包转发给客户端程序。问题过程如下: Private Sub Server_DataArrival(ByVal bytesTotal As Long)
Dim ServerToClient As String ‘这里我将数据包定义为String数据类型,想直接查看修改数据包内容
Server.GetData ServerToClient
Client.SendData ServerToClient
End Sub 运行以上过程客户端程序不响应,不与我的代理程序中的Client通讯,于是我将ServerToClient定义为Byte数据类型 Private Sub Server_DataArrival(ByVal bytesTotal As Long)
Dim ServerToClient() As Byte ‘这里我将数据包定义为Byte数据类型
Server.GetData ServerToClient
Client.SendData ServerToClient
End Sub 这样客户端程序就响应了,能与我的代理程序中的Client通讯了,这说明客户端程序与远程服务器通讯是不支持String数据类型的。那么我就必须要将定义为Byte数据类型的数据包转换成string数据类型以便查看并且修改数据包内容,我用如下代码转换成string数据类型: s$ = StrConv(ServerToClient(), vbUnicode) 的确我看到了数据包的内容,然后我将数据包的内容修改后用ServerToClient() = StrConv(s$, vbFromUnicode)转换成Byte数据类型转发给客户端程序,问题就在这儿:客户端程序不响应了,不与我的代理程序通讯了!? 我做了这样的尝试,不修改数据包的内容用ServerToClient() = StrConv(s$, vbFromUnicode)转换成Byte数据类型转发给客户端程序,客户端程序还是不响应?! 各位大虾,我的问题出在哪儿?用什么方法能将string数据类型转换成Byte数据类型的数据包与客户端程序通讯?或者不用对Byte数据包进行任何转换直接查看和修改Byte数据包内容?望不吝赐教,谢谢!
Dim ServerToClient As String ‘这里我将数据包定义为String数据类型,想直接查看修改数据包内容
Server.GetData ServerToClient
Client.SendData ServerToClient
End Sub 运行以上过程客户端程序不响应,不与我的代理程序中的Client通讯,于是我将ServerToClient定义为Byte数据类型 Private Sub Server_DataArrival(ByVal bytesTotal As Long)
Dim ServerToClient() As Byte ‘这里我将数据包定义为Byte数据类型
Server.GetData ServerToClient
Client.SendData ServerToClient
End Sub 这样客户端程序就响应了,能与我的代理程序中的Client通讯了,这说明客户端程序与远程服务器通讯是不支持String数据类型的。那么我就必须要将定义为Byte数据类型的数据包转换成string数据类型以便查看并且修改数据包内容,我用如下代码转换成string数据类型: s$ = StrConv(ServerToClient(), vbUnicode) 的确我看到了数据包的内容,然后我将数据包的内容修改后用ServerToClient() = StrConv(s$, vbFromUnicode)转换成Byte数据类型转发给客户端程序,问题就在这儿:客户端程序不响应了,不与我的代理程序通讯了!? 我做了这样的尝试,不修改数据包的内容用ServerToClient() = StrConv(s$, vbFromUnicode)转换成Byte数据类型转发给客户端程序,客户端程序还是不响应?! 各位大虾,我的问题出在哪儿?用什么方法能将string数据类型转换成Byte数据类型的数据包与客户端程序通讯?或者不用对Byte数据包进行任何转换直接查看和修改Byte数据包内容?望不吝赐教,谢谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货