设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 8176|回复: 7
打印 上一主题 下一主题

使用透明通道传送缓冲区扩展方法TransBufferEx发送数据问题

[复制链接]

3

主题

7

帖子

35

积分

新手上路

Rank: 1

积分
35
跳转到指定楼层
楼主
发表于 2013-8-15 15:20:48 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
您好,我在Android系统中调用TransBufferEx对指定的用户ID发送数据,在public void OnAnyChatTransBufferEx(int dwUserId, byte[] lpBuf, int dwLen,
                        int wparam, int lparam, int taskid) 方法中接收不到。而调用TransBuffer可以在事件回调方法public void OnAnyChatTransBuffer(int dwUserId, byte[] lpBuf, int dwLen)中接收到数据,如果把dwUserId值设为0,在业务服务器中也接收不到数据。请问这是怎么回事?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

3

主题

7

帖子

35

积分

新手上路

Rank: 1

积分
35
8#
 楼主| 发表于 2013-8-16 10:50:53 | 只看该作者
嗯,谢谢,问题原因找到了,UDP端口限制策略没有打开,现在可以了。
回复 支持 反对

使用道具 举报

249

主题

2967

帖子

9107

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9107
7#
发表于 2013-8-15 15:48:44 | 只看该作者
您好,请参考FAQ:http://www.anychat.cn/faq/index.php?action=artikel&cat=2&id=266&artlang=zh
  1. [Debug Settings]
  2. OutputTransBuffer=1
  3. OutputTransTask=1
复制代码
将OutputTransBuffer和OutputTransTask的调试模式打开,然后在日志中会输出更多的信息供参考。
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
6#
发表于 2013-8-15 15:43:12 | 只看该作者
jelly_bitores 发表于 2013-8-15 15:39
已经登陆成功了,要不然TransBuffer这个方法也不可能发送成功,业务服务器部署成功,因为登陆验证是从数据 ...

另外可以将您android端的日志发上来看下,TransBufferEx默认走的UDP,而TransBuffer走的是TCP
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
5#
发表于 2013-8-15 15:41:37 | 只看该作者
jelly_bitores 发表于 2013-8-15 15:39
已经登陆成功了,要不然TransBuffer这个方法也不可能发送成功,业务服务器部署成功,因为登陆验证是从数据 ...

请问您的业务服务器使用的是什么语言的开发版本?
回复 支持 反对

使用道具 举报

3

主题

7

帖子

35

积分

新手上路

Rank: 1

积分
35
地板
 楼主| 发表于 2013-8-15 15:39:18 | 只看该作者
已经登陆成功了,要不然TransBuffer这个方法也不可能发送成功,业务服务器部署成功,因为登陆验证是从数据库读取验证的。

我现在用这种方法就可以在A、B两个客户端之间发送和接收数据:
JSONObject data = new JSONObject();
data.put("wmuc", UserDefine.WM_UC_IMCHATMSG);
data.put("data", content);
byte[] sendbuf = content.getBytes();
anychat.TransBuffer(mCurrUserId, sendbuf, sendbuf.length);

换成TransBufferEx方法就接收不到
AnyChatTransTaskOutParam outParam = new AnyChatTransTaskOutParam();
anychat.TransBufferEx(mCurrUserId, sendbuf, sendbuf.length, UserDefine.WM_UC_REQUESTVIDEO, 1, 0, outParam);
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
板凳
发表于 2013-8-15 15:33:24 | 只看该作者
jelly_bitores 发表于 2013-8-15 15:24
//向服务器发送消息
//AnyChatTransTaskOutParam outParam = new AnyChatTransTaskOutParam();
//anychat ...

您好!使用TransBufferEx TransBuffer  TransFile的前提是要进入登录服务器成功。服务器和客户端接收消息都要设置相应的接收句柄。请问您的业务服务器使用的是什么语言的开发版本,。你客户端连接的服务器是自己部署的服务器吗?服务器部署成功了吗?
回复 支持 反对

使用道具 举报

3

主题

7

帖子

35

积分

新手上路

Rank: 1

积分
35
沙发
 楼主| 发表于 2013-8-15 15:24:04 | 只看该作者
//向服务器发送消息
//AnyChatTransTaskOutParam outParam = new AnyChatTransTaskOutParam();
//anychat.TransBufferEx(0, sendbuf, sendbuf.length, 0, 0, 0, outParam);
                       
//向服务器发送文件
//String filepath = Environment.getExternalStorageDirectory().getPath() + "/sdkLog.txt";
//anychat.TransFile(0, filepath, 0, 0, 0, new AnyChatTransTaskOutParam());

这两种方式发送后返回值是0,在业务服务器对应的回调函数中都不能接收到,有什么需要注意的吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2024-11-16 15:55 , Processed in 0.127795 second(s), 22 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表