首页
社区
课程
招聘
[求助]如何区分每一个socket,然后只对一个IP发送命令?
发表于: 2007-5-12 13:57 5419

[求助]如何区分每一个socket,然后只对一个IP发送命令?

2007-5-12 13:57
5419
最近在用汇编写一个远程管理程序,很多问题已经搞定,就差几个问题,比如两台IP连接上 192.168.0.5   192.168.0.7。并且把他们显示在SysListView32控件里。

现在要对 192.168.0.5执行某一条命令,那么发送命令就是 invoke send,hSocket,addr lpBuff,sizeof lpBuff,0

现在问题出来了,然后我点击 IDC_Send这个消息列队发送命令的话,那么192.168.0.5  

192.168.0.7这两台IP都会执行我刚发送的这条命令。现在我只想在SysListView32控件

里选择192.168.0.5一台,然后只让192.168.0.5执行这个命令,我想应该是怎么区socket.

该怎么做?各位大大?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 216
活跃值: (2407)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
2
在添加客户端的时候把_hSocket编号保存起来,在发送的时候获取一下就可以了.
顺便也可以看一下老罗的聊天示例,他那个虽然是群发,但稍加改动之后就可以'私聊'了.

mov        esi,offset stTable
xor        ebx,ebx
.while        ebx <        MAX_SOCKET
        mov        edi,[esi]
.if        edi
        invoke        lstrlen,addr szBuffer
        invoke        send,edi,addr szBuffer,eax,0
.endif
        add        esi,4
        inc        ebx
.endw
2007-5-12 15:33
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
3
我修改了一下,貌似不行耶。

我想估计私聊还要使用一些控件来获取socket编号,比如ListBox

4st0ne  兄弟能否在老罗聊天的例子上,使用ListBox来写个私聊的例子?
2007-5-12 15:54
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
4
我的思路就是,在ListBox里选中一个后,然后对比一下socket编号,对则发送。

想归想,实现起来,很多控件会卡住我。比如,在ListBox里选中一个后,这个ID列队(按扭)改怎么弄等问题。
2007-5-12 16:02
0
雪    币: 216
活跃值: (2407)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
5
帮你改了一下,效果图如附件所示.
源码用的是老罗聊天程序的Server端改的,我添加了_AddClient和SendData两个子函数.你具体可以看一下,对于下线事件没有处理,我想这个你自己应该能搞的.
上传的附件:
2007-5-12 17:18
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
6


太感谢您了。HOHO```~
2007-5-12 18:35
0
游客
登录 | 注册 方可回帖
返回
//