⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 senddata.c

📁 基于SAA7113的MPEG-4程序
💻 C
字号:
#include <sys/socket.h>#include <netinet/in.h>#include <sys/types.h>#include <stdio.h>#include <unistd.h>#include "senddata.h"int server_sockfd,client_sockfd;int server_len,client_len;struct sockaddr_in server_address;struct sockaddr_in client_address;void initsock(char *pRemIP,unsigned short uRemPort,unsigned short uLocPort){	//1.初始化SOCKET	server_sockfd = socket(AF_INET, SOCK_DGRAM, 0);	bzero(&server_address, sizeof(server_address)); //地址结构清零	server_address.sin_family = AF_INET; //IPv4协议	server_address.sin_addr.s_addr = htonl(INADDR_ANY);//内核指定地址	server_address.sin_port = htons(uLocPort); //6800 端口PORT_SOCKET_SERVER	server_len = sizeof(server_address);	bind(server_sockfd,(struct sockaddr *)&server_address,server_len);	bzero(&client_address, sizeof(client_address)); //地址结构清零	client_address.sin_family = AF_INET; //IPv4协议	client_address.sin_addr.s_addr = inet_addr(pRemIP); //IP地址 "192.168.1.126"	client_address.sin_port = htons(uRemPort); //6801 端口PORT_SOCKET_CLIENT	client_len = sizeof(client_address);}void senddata(BYTE* pPicBuf,int ilen){	static BYTE m_uID = 1;	int inum=ilen/SIZE_VIDEO_PACKED;
	int subid = 0;
	int ipacklen = 0;	int iSend = 0;	int ibuflen = 0;		AVIO_VIDEO vpack;		int i=0;	if(inum*SIZE_VIDEO_PACKED < ilen)
		inum++;	for(i=0;i<inum;i++)
	{
		memset(&vpack,0,sizeof(AVIO_VIDEO));
		vpack.flag = FLAG_VIDEO;
		vpack.id = m_uID;
		vpack.subid = subid;
		vpack.data_size_total = ilen;

		//计算该报的数据长度

		if(ilen-i*SIZE_VIDEO_PACKED >= SIZE_VIDEO_PACKED)
			ibuflen = SIZE_VIDEO_PACKED;
		else
			ibuflen = ilen-i*SIZE_VIDEO_PACKED;
		
		vpack.data_size = ibuflen;
		memcpy(&vpack.data[0],pPicBuf+i*SIZE_VIDEO_PACKED,ibuflen);

		if(subid<255)
			subid++;
		else
			subid=0;

		ibuflen = sizeof(AVIO_VIDEO); // - SIZE_VIDEO_PACKED + vpack.data_size;

		//发送数据		iSend = sendto(server_sockfd, &vpack, ibuflen, 0, (struct sockaddr *)&client_address, client_len);		
		//iSend = m_socket.SendTo(&vpack,ibuflen,PORT_SOCKET_CLIENT,"192.168.1.126",0);	}
	
	if(m_uID<255)
		m_uID++;
	else
		m_uID=1;	//printf("Frame sent: len = %d id = %d  num = %d\n",iSend,vpack.id,inum);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -