使用UDP如何向jrtp发送数据?

yuucyf 2014-04-28 11:13:11
一般都是使用jrtp向jrtp发送数据,但是为测试,我使用UDP(客户端)向jrtp(服务器端)发送数据,可是不管怎么样?
服务器端都收不到数据,但是用抓包工具抓包发现更奇怪?
比如:我向IP:AAA:BBB:CCC:DDD, 端口22000发送数据
代码这样写用抓包工具可以抓到数据包,但是端口不对:

struct sockaddr_in address;
bzero(&address, sizeof(address));
address.sin_family = AF_INET;
address.sin_addr.s_addr = inet_addr(“AAA:BBB:CCC:DDD”);
address.sin_port = 22000;
sendto(...)

显然22000端口没有转为网络序,但是用抓包工具可以抓到数据包,但是端口不是22000?(因为我们没有转端口为网络序)

如果像下面写,那么用抓包工具就抓不到数据:(太奇怪了)

struct sockaddr_in address;
bzero(&address, sizeof(address));
address.sin_family = AF_INET;
address.sin_addr.s_addr = inet_addr(“AAA:BBB:CCC:DDD”);
address.sin_port = htons(22000);
sendto(...)


使用以上两种方式向服务器发送数据包,jrtp都收不到,我的问题是,是不是用udp发送数据给rtp,是不是要加上rtp头呀???
如果不需要,那为什么收不到?


熟悉jrtp的通信给个sample看看?
...全文
139 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuucyf 2014-05-04
  • 打赏
  • 举报
回复
没有找到问题答案,不知道怎么封装RTP协议头.
wyx100 2014-04-29
  • 打赏
  • 举报
回复
引用 2 楼 yuucyf 的回复:
[quote=引用 1 楼 yaozhiyong110 的回复:] 比如:我向IP:AAA:BBB:CCC:DDD, 端口22000发送数据 不是应该 AAA.BBB.CCC.DDD的么
IP只是个例子,没有问题的,用抓包工具看到均OK. 主要是RTP Header不知道怎么封装.[/quote]顶
yuucyf 2014-04-29
  • 打赏
  • 举报
回复
有人用 udp 向(jrtplib开源库)jrtp对象发送数据吗? 目前如果单纯使用udp向rtp对象发送数据,那么rtp对象不能收到,就是在RTP对象OnPollThreadStep函数中收不到,当然段端口和地址均正确。用抓包工具抓包也可以抓到数据包,但是RTP对象中就是收不到,之前一个同事说要对UDP数据增加一个RTP头,可是我增加了RTP头还是不行? 封装RTP包头:

/RTP结构头定义.
struct RTPHeader
{
#ifdef RTP_BIG_ENDIAN
	uint8_t version:2;
	uint8_t padding:1;
	uint8_t extension:1;
	uint8_t csrccount:4;

	uint8_t marker:1;
	uint8_t payloadtype:7;
#else // little endian
	uint8_t csrccount:4;
	uint8_t extension:1;
	uint8_t padding:1;
	uint8_t version:2;

	uint8_t payloadtype:7;
	uint8_t marker:1;
#endif // RTP_BIG_ENDIAN

	uint16_t sequencenumber;
	uint32_t timestamp;
	uint32_t ssrc;
};
//设置RTP数据头.
	RTPHeader Header;
	memset(&Header, 0, sizeof(RTPHeader));
	Header.version = RTP_VERSION;
	Header.payloadtype = 75;
有人知道原因吗?指点一下?
yuucyf 2014-04-28
  • 打赏
  • 举报
回复
引用 1 楼 yaozhiyong110 的回复:
比如:我向IP:AAA:BBB:CCC:DDD, 端口22000发送数据 不是应该 AAA.BBB.CCC.DDD的么
IP只是个例子,没有问题的,用抓包工具看到均OK. 主要是RTP Header不知道怎么封装.
yaozhiyong110 2014-04-28
  • 打赏
  • 举报
回复
比如:我向IP:AAA:BBB:CCC:DDD, 端口22000发送数据 不是应该 AAA.BBB.CCC.DDD的么

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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