找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 5220|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

C++ tcp通信進(jìn)行語音文本信息收發(fā)(與微信類似)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
開發(fā)板上的微信語音聊天功能
     1.錄音并發(fā)送給對方
                  難點(diǎn):錄音接收之后如何保存到本地開發(fā)板中
     2.按住屏幕上的按鈕開始錄音,錄完音之后松開按鈕,自動發(fā)送(降低難度:點(diǎn)擊觸摸屏上的錄音按鈕就開始錄音,錄完之后發(fā)送)
     3.收到語音之后,要有背景提示音,圖標(biāo)提示
     4.發(fā)送文件


源程序如下:
  1. #include "myhead.h"
  2. /*
  3.         tcp通信,boy
  4. */
  5. int iphonex;
  6. void *recvmsgg(void *arg)
  7. {
  8.         int ret;
  9.         int size = 0;
  10.         char msgbuf[20];
  11.         while(1)
  12.         {
  13.                 //接受對方發(fā)過來的wav的具體大小
  14.                 ret=recv(iphonex,&size,4,0);
  15.                 printf("第一個recv返回值是:%d  %d\n",ret,size);
  16.                 if(size > 20)
  17.                 {
  18.                         //接收wav
  19.                         char buf[99];
  20.                         //創(chuàng)建空白wav
  21.                         int fd = open("1.wav", O_CREAT|O_RDWR|O_TRUNC);
  22.                         if(fd == -1)
  23.                         {
  24.                                 printf("open wav失敗!\n");
  25.                                 return;
  26.                         }
  27.                        
  28.                         //但是recv不能一次性接收!�。。。�???
  29.                         while(1)
  30.                         {
  31.                                 bzero(buf,99);
  32.                                 ret=recv(iphonex,buf,99,0);
  33.                                 printf("第二個recv返回值是:%d  %s\n",ret,buf);
  34.                                 //把buf里面的內(nèi)容寫到空白wav里
  35.                                 write(fd,buf,ret);
  36.                                
  37.                                 if(ret < 99)
  38.                                 {
  39.                                         close(fd);
  40.                                         break;
  41.                                 }
  42.                         }
  43.                 }
  44.                 else
  45.                 {
  46.                         bzero(msgbuf,20);
  47.                         ret=recv(iphonex,msgbuf,20,0);
  48.                         printf("6818發(fā)來信息: %s\n",msgbuf);
  49.                 }
  50.                
  51.                
  52.                
  53.             
  54.         }
  55. }
  56. int main()
  57. {
  58.        
  59.        
  60.         int addrsize=sizeof(struct sockaddr_in);
  61.         int ret;
  62.         char buf[99];
  63.         //定義ipv4地址結(jié)構(gòu)體變量,用于存放對方的ip和端口號
  64.         struct sockaddr_in girladdr;
  65.         //初始化該結(jié)構(gòu)體變量
  66.         bzero(&girladdr,sizeof(girladdr)); //memset()也行
  67.         girladdr.sin_family=AF_INET;
  68.         girladdr.sin_addr.s_addr=inet_addr("192.168.110.128");
  69.         girladdr.sin_port=htons(10003);
  70.        
  71.         //買手機(jī) --》創(chuàng)建tcp套接字
  72.         iphonex=socket(AF_INET,SOCK_STREAM,0);
  73.         if(iphonex==-1)
  74.         {
  75.                 perror("create sock failed!\n");
  76.                 return -1;
  77.         }
  78.         //不綁定,綁定和不綁定是有區(qū)別的
  79.         //撥號,連接女朋友
  80.         ret=connect(iphonex,(struct sockaddr *)&girladdr,addrsize);
  81.         if(ret==-1)
  82.         {
  83.                 perror("撥號失敗!\n");
  84.                 return 0;
  85.         }
  86.         pthread_t myid;
  87.         //新建一個線程專門用于接收來自女朋友的信息
  88.         pthread_create(&myid,NULL,recvmsgg,NULL);
  89.        
  90.         while(1)
  91.         {
  92.                 //發(fā)送信息
  93.                 bzero(buf,20);
  94.                 printf("請輸入你要發(fā)送的內(nèi)容!\n");
  95.                 fgets(buf,20,stdin);
  96.                 ret=send(iphonex,buf,20,0);
  97.                 printf("send返回值是:%d\n",ret);
  98.         }
  99.        
  100.         return 0;
  101. }
復(fù)制代碼

所有資料51hei提供下載:
tcp版本.rar (485.21 KB, 下載次數(shù): 12)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表