标题:
C++ tcp通信进行语音文本信息收发(与微信类似)
[打印本页]
作者:
_Blue
时间:
2018-3-26 18:22
标题:
C++ tcp通信进行语音文本信息收发(与微信类似)
开发板上的微信语音聊天功能
1.录音并发送给对方
难点:录音接收之后如何保存到本地开发板中
2.按住屏幕上的按钮开始录音,录完音之后松开按钮,自动发送(降低难度:点击触摸屏上的录音按钮就开始录音,录完之后发送)
3.收到语音之后,要有背景提示音,图标提示
4.发送文件
0.png
(51.38 KB, 下载次数: 52)
下载附件
2018-3-27 02:15 上传
源程序如下:
#include "myhead.h"
/*
tcp通信,boy
*/
int iphonex;
void *recvmsgg(void *arg)
{
int ret;
int size = 0;
char msgbuf[20];
while(1)
{
//接受对方发过来的wav的具体大小
ret=recv(iphonex,&size,4,0);
printf("第一个recv返回值是:%d %d\n",ret,size);
if(size > 20)
{
//接收wav
char buf[99];
//创建空白wav
int fd = open("1.wav", O_CREAT|O_RDWR|O_TRUNC);
if(fd == -1)
{
printf("open wav失败!\n");
return;
}
//但是recv不能一次性接收!!!!????
while(1)
{
bzero(buf,99);
ret=recv(iphonex,buf,99,0);
printf("第二个recv返回值是:%d %s\n",ret,buf);
//把buf里面的内容写到空白wav里
write(fd,buf,ret);
if(ret < 99)
{
close(fd);
break;
}
}
}
else
{
bzero(msgbuf,20);
ret=recv(iphonex,msgbuf,20,0);
printf("6818发来信息: %s\n",msgbuf);
}
}
}
int main()
{
int addrsize=sizeof(struct sockaddr_in);
int ret;
char buf[99];
//定义ipv4地址结构体变量,用于存放对方的ip和端口号
struct sockaddr_in girladdr;
//初始化该结构体变量
bzero(&girladdr,sizeof(girladdr)); //memset()也行
girladdr.sin_family=AF_INET;
girladdr.sin_addr.s_addr=inet_addr("192.168.110.128");
girladdr.sin_port=htons(10003);
//买手机 --》创建tcp套接字
iphonex=socket(AF_INET,SOCK_STREAM,0);
if(iphonex==-1)
{
perror("create sock failed!\n");
return -1;
}
//不绑定,绑定和不绑定是有区别的
//拨号,连接女朋友
ret=connect(iphonex,(struct sockaddr *)&girladdr,addrsize);
if(ret==-1)
{
perror("拨号失败!\n");
return 0;
}
pthread_t myid;
//新建一个线程专门用于接收来自女朋友的信息
pthread_create(&myid,NULL,recvmsgg,NULL);
while(1)
{
//发送信息
bzero(buf,20);
printf("请输入你要发送的内容!\n");
fgets(buf,20,stdin);
ret=send(iphonex,buf,20,0);
printf("send返回值是:%d\n",ret);
}
return 0;
}
复制代码
所有资料51hei提供下载:
tcp版本.rar
(485.21 KB, 下载次数: 12)
2018-3-26 18:20 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1