java调用jrtplib_使用JRTPLIB 进行简单的数据发送(TCP版)

#include "rtptcpaddress.h"

#include "rtpsession.h"

#include "rtpsessionparams.h"

#include "rtptcptransmitter.h"

#include "rtpipv4address.h"

#include "rtptimeutilities.h"

#include "rtppacket.h"

#include "rtpabortdescriptors.h"

using namespace jrtplib;

void main()

{

#ifdef WIN32

WSADATA dat;

WSAStartup(MAKEWORD(2,2),&dat);

#endif

RTPSession session;

RTPAbortDescriptors m_descriptors;

RTPSessionParams sessionparams;

sessionparams.SetAcceptOwnPackets(true);

sessionparams.SetOwnTimestampUnit(1.0/10.0);

m_descriptors.Init();

RTPTCPTransmissionParams transparams;

transparams.SetCreatedAbortDescriptors(&m_descriptors);

int status = session.Create(sessionparams,&transparams,RTPTransmitter::TCPProto);

if (status < 0)

{

std::cerr << "[session.Create]" << QString::fromStdString(RTPGetErrorString(status));

return;

}

//初始化socket

SOCKET sockSrv = socket(AF_INET, SOCK_STREAM, 0);

SOCKADDR_IN addrSrv;

addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");

addrSrv.sin_family = AF_INET;

addrSrv.sin_port = htons(9000);

//连接服务器

connect( sockSrv, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));

RTPTCPAddress addr(sockSrv);

status = session.AddDestination(addr);

if (status < 0)

{

std::cerr << "session.AddDestination" << QString::fromStdString(RTPGetErrorString(status));

return;

}

session.SetDefaultPayloadType(96);

session.SetDefaultMark(false);

session.SetDefaultTimestampIncrement(160);

//发送数据

session.SendPacket(str.data(),str.length());

RTPTime delay(0.020);

session.BYEDestroy(delay,"Client End",9);

}

JRTPLIB中如果要使用TCP方式通信,则需要先建立socket,再将socket句柄传递给 RTPTCPAddress

转载至链接:https://my.oschina.net/u/1250206/blog/1786928


版权声明:本文为weixin_42210038原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。