有点急,麻烦帮忙看下

skycaop 2007-08-14 01:39:37
现在有一服务器程序,为C++开发的,会将一些信息打包以TCP/IP来发送
现在我需要开发一个VB编写的客户端,通过TCP/IP来获得这些数据包,想了好久,以前没有接触过,所以没有什么头绪,有谁能告诉下该如何下手?
...全文
1453 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmyyxx88 2007-08-15
  • 打赏
  • 举报
回复
你先写几句代码用于测试Winsock_DataArrival这个事件是否发生。比如:
Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
Dim Tmp As string
Me.Winsock.GetData Tmp
debug.print tmp '看有无反应
End Sub

如果没有反映,那么检查Winsock的协议于主机协议是否相同,再不行就不行了,问题发生在程序员那里。
skycaop 2007-08-15
  • 打赏
  • 举报
回复
Winsock的LocalPort对客户来说,该属性指定发送数据的本地端口。
对于服务器来说,这是用于侦听的本地端口。
目前我是无法接收数据,和这个属性有关系吗?
这个属性,我设置了也还是接收不到数据
benyfeifei 2007-08-15
  • 打赏
  • 举报
回复
是不是Winsock的LocalPort没有设置啊?!
skycaop 2007-08-15
  • 打赏
  • 举报
回复
是用这样的方式吗?
If Winsock.State <> sckConnected Then

Message.Text="连接失败"
Else
Message.Text="连接成功"
End If
是这样的话我有做判断,并显示确实连上了
benyfeifei 2007-08-15
  • 打赏
  • 举报
回复
Winsock控件的DataArrival事件不响应
---------------------------
只能说明客户端没有连接上服务器,仔细确认服务器的IP和端口,你可以实时查看一下客户端Winsock控件的State属性是否已连接上服务器。
skycaop 2007-08-15
  • 打赏
  • 举报
回复
benyfeifei(狒狒) ( ) 信誉:100
按你的方法改后还是不能进入DataArrival事件中
我把问题在提一下
C++开发的服务器端,无源码,现在需要用VB开发一个客户端通过tcp/ip协议去抓取服务器端发出的数据包加以分析。目前我用VB的Winsock控件,在知道服务器端口,主机名的情况下,接收不到数据包,Winsock控件的DataArrival事件不响应
benyfeifei 2007-08-15
  • 打赏
  • 举报
回复
接收程序这样写:

Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)

Dim Tmp As Variant

Me.Winsock.GetData Tmp

'数据的后续处理

End Sub
skycaop 2007-08-15
  • 打赏
  • 举报
回复
samwzhang(分全给我)
能解释下该如何做吗?怎么用Byte数组接收?另外我测试的时候,程序根本不进入DataArrival事件中去,而服务器确实有发数据包出来
skycaop 2007-08-15
  • 打赏
  • 举报
回复
guyehanxinlei(孤夜寒心泪) ( ) 信誉:100 2007-08-15 08:52:42 得分: 0


winsock控件

麻烦你仔细看看我后面写的,我是用winsock控件,问题是得不到数据
samwzhang 2007-08-15
  • 打赏
  • 举报
回复
用Byte数组接收
guyehanxinlei 2007-08-15
  • 打赏
  • 举报
回复
winsock控件
skycaop 2007-08-15
  • 打赏
  • 举报
回复
我不知道我这样解释的是否清楚,有谁能帮忙看看
skycaop 2007-08-15
  • 打赏
  • 举报
回复
问题解决了,是我笨了,要向服务器主机提交请求才能有接收数据过来,程式没有问题,还是谢谢大家了
skycaop 2007-08-14
  • 打赏
  • 举报
回复
C++开发的服务器端,无源码,现在需要开发一个客户端通过tcp/ip协议去抓取服务器端发出的数据包加以分析,目前我不知道该如何去抓取数据封包.

这是我写的连接初始化
Public Sub install()

SubMain.Winsock.Close

'SubMain.Winsock.Listen

SubMain.Winsock.RemoteHost = "FJ-209F6D2325DB" '表示服务器主机名


SubMain.Winsock.RemotePort = 1001 '表示服务器端口名

SubMain.Winsock.connect '连接到服务器

SubMain.Frame6.Visible = False

SubMain.Frame7.Visible = False

End Sub
下面是获取数据,就是下面的没有响应
Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)

Dim Tmp As Long

Me.Winsock.GetData tmpstr

Tmp = Dec(tmpstr)

tmpstr = Str(Tmp)

ToolsWriteLog (tmpstr)

End Sub

mmyyxx88 2007-08-14
  • 打赏
  • 举报
回复
怎么会抓不到,除非程序有错。
要别人如何帮忙?你写清楚啊。
skycaop 2007-08-14
  • 打赏
  • 举报
回复
有没人可以帮到忙的?
skycaop 2007-08-14
  • 打赏
  • 举报
回复
或者说服务器发送过来的数据包就是很多个数组包的集合,需要怎么办?
skycaop 2007-08-14
  • 打赏
  • 举报
回复
用winsock的DataArrival这个事件吗?比方说现在服务器发送的包内数据是
FE FE FE 68 73 90 06 00
00 00 00 00 00 09 16
FE FE FE 68 4E 90 02 04 04 E8 16
FE FE FE 68 3A 90 02 05 05 D6 16
FE FE FE 68 73 90 06 00
00 00 00 00 00 09 16
用DataArrival这个好象抓不到
zzyong00 2007-08-14
  • 打赏
  • 举报
回复
vb用winsock控件
xr105 2007-08-14
  • 打赏
  • 举报
回复
Inet 通过下载看可以不?
加载更多回复(2)

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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