李娜多媒体网络通信技术

2026/1/26 21:38:45

图5 图像数据帧发送流程图

图6 图像数据帧接收流程图

音频信号是一维信号,音频数据的收发更为简单,在这里就不作具体分析。

3系统具体设计

3.1呼叫处理

3.1.1呼叫处理模块

在实现语音视频聊天时,采用的是基于UDP套接字的点对点模式,而UDP面向的是无连接的数据服务,其套接字的使用如图7所示。

图7 UDP套接字的使用

3.1.2呼叫处理关键代码

客户端请求连接线程(呼叫处理)关键代码如下: DWORD WINAPI ConnectThreadFunc(LPVOID pParam) {

CChatRoomDlg *pChatRoom = (CChatRoomDlg *)pParam; ASSERT(pChatRoom ! = NULL);

pChatRoom ->m_ConnectSock = socket (AF_INET ,SOCK_STREAM , IPPROTO_TCP); if ( pChatRoom->m_ConnectSock == INVALID_SOCKET) { AfxMessageBox(_T(\新建Socket 失败! \

return FALSE; }

CString strServIp;

pChatRoom->GetDlgItemText(IDC_IP_ADDR, strServIp); int iPort = pChatRoom ->GetDlgItemInt (IDC_CONNECT_PORT); if( iPort <= 0 || iPort > 65535 ) {

AfxMessageBox(_T(\请输入合适的端口:1 - 65535\goto __Error_End; }

char szIpAddr[16] = {0}; USES_CONVERSION;

strcpy_s(szIpAddr, 16, T2A(strServIp)); sockaddr_in server;

server.sin_family = AF_INET; server.sin_port = htons(iPort);

server.sin_addr.s_addr = inet_addr(szIpAddr);

if(connect(pChatRoom->m_ConnectSock,(struct sockaddr*)&server, sizeof(struct sockaddr)) == SOCKET_ERROR ) {

AfxMessageBox(_T(\连接失败,请重试! \goto __Error_End; }

pChatRoom->ShowMsg(_T(\系统信息: 连接服务器成功! \while( TRUE ) {

if ( SOCKET_Select(pChatRoom->m_ConnectSock) ) { TCHAR szBuf[MAX_BUF_SIZE] = {0};

int iRet = recv (pChatRoom->m_ConnectSock, (char*)szBuf, MAX_BUF_SIZE, 0); if ( iRet > 0 ) {

pChatRoom->ShowMsg(szBuf);


李娜多媒体网络通信技术.doc 将本文的Word文档下载到电脑
搜索更多关于: 李娜多媒体网络通信技术 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219