[Linux网络编程]图片的发送和接收

    记录项目中实现QT客户端发送图片,Linux服务器接收图片并保存本地的功能代码。
    如果没有要求,可一次性把图片数据发送,不用分成多个包进行传输。

包的设计

typedef struct insert {
   
    int packet_seq;		//包序号
    int packet_sum;		//包总数
    char trans_id[32];	//包流水32
}INSERT_T;

typedef struct service	//业务层数据
{
   
    int funcid;			//功能号
    char contex[900];	//业务数据
}SERVICE_T;

typedef struct bag {
   	//总包类型
    char bag_head[2];	//包头		    4字节
    int fd;				//fd            4字节
    INSERT_T insert_;	//接入层数据    40字节
    SERVICE_T service_;	//业务层数据    904字节
    int error_code;		//错误代码	    4字节
    char error_msg[32];	//错误信息	    32字节
    char bag_md5[32];	//校验码        32字节
    char bag_tail[2];	//包尾		    4字节
}BAG_T;


typedef struct req_picture
{
   
    char picture_id[32];		//图片id(名字)
    char user_id[16];			//用户id
    char video_id[32];			//视频id(名字)
    char picture_time[32];		//拍摄时间
    char picture_locale[32];	//拍摄地点
    int status;					//自动拍照:0,手动拍照:1
    int len;					//图片大小
    unsigned char picture[700];			//存放视频
}REQ_PICTURE_T;

QT客户端主要代码

简单的说就是转换成dataArray的数据格式,根据实际包实际能存放的大小,每次发送固定长度的图片数据给服务器。注意最后一个包的处理。

void picture::on_pushButton_2_clicked()
{
   
    //设置图片id
    QDateTime current_date_time =QDateTime::currentDateTime();
    QString current_date =current_date_time.toString("yyyyMMddhhmmss")</
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Windalove

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值