求解c++程序 就是解释一下这都是什么,好的加分,这是一个视频采集端的程序

2025-01-06 13:35:10
推荐回答(4个)
回答1:

//获取应用程序的主窗口
CSeverPlusDlg* pDlg=(CSeverPlusDlg*)::AfxGetMainWnd();

if (pDlg->m_ServerStreamSock.m_hSocket==INVALID_SOCKET && nErrorCode==0)
{
//接收连接请求
Accept(pDlg->m_ServerStreamSock);
//注册网络事件
pDlg->m_ServerStreamSock.AsyncSelect(FD_READ | FD_WRITE);
}
else if(pDlg->m_ServerCtrlSock==INVALID_SOCKET && nErrorCode==0)
{
//接收连接请求
Accept(pDlg->m_ServerCtrlSock);
//注册网络事件
pDlg->m_ServerCtrlSock.AsyncSelect(FD_READ | FD_WRITE);
AfxMessageBox("User Connected,Begin transporting video image!");

//发送编码器的输出格式以作为接收端解码器的输入格式
//服务控制信息
SERVER_CTRL_MSG msg;
//初始化
memset(&msg,0,sizeof(SERVER_CTRL_MSG));
//控制信息类型为编解码器格式
strcpy(msg.strCommand,"Set Bitmap Info");
//设置控制信息内存
memcpy(msg.strContent,pDlg->m_pOutInfo,sizeof(BITMAPINFO));
//控制信息实际大小
msg.nContentUsedByte=sizeof(BITMAPINFO);
//发送编码器的输出格式
pDlg->m_ServerCtrlSock.Send(&msg,sizeof(SERVER_CTRL_MSG));

//发送编码器的COMPVARS结构
//初始化
memset(&msg,0,sizeof(SERVER_CTRL_MSG));
//服务器控制信息类型为编解码COMPVARS结构
strcpy(msg.strCommand,"Set COMPVARS");
//控制信息实际大小
msg.nContentUsedByte=sizeof(COMPVARS);
//复制
memcpy(msg.strContent,&pDlg->m_CV,sizeof(COMPVARS));
//发送
pDlg->m_ServerCtrlSock.Send(&msg,sizeof(SERVER_CTRL_MSG));

afxDump<m_CV.fccType<<"\n";
//设置连接标志
pDlg->m_bConnect=TRUE;
这个主要是监听 发送编码器的定义 主要是设置传递本地编码器的信息 包括控制信息 解码器信息 方便客户端的解码

回答2:

if(sum==0)
cout<应该移出内循环,
移到sum=0;前面

回答3:

VC++编的,你发的部分主要是数据打包工作,不完整,

回答4:

怎么了?