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

📄 fooclient.c.bak

📁 基于socket的简单通讯程序
💻 BAK
字号:
#include	<sys/socket.h>
#include	<arpa/inet.h>
#include	<stdio.h>
#include	<sys/types.h>
#include	<sys/stat.h>
#include	<fcntl.h>
#include	<stdlib.h>	
#include	<string.h>	
#include	<unistd.h>
#include	"myrdwr.h"

#define BUFLEN 1440*576   /*  Column * Row */
/*********************************************************************************************
ITU656 4:2:2

	 0 1 2  3 4  5  6 7  8 9 10             1439 
     * * *       *      *  * *
0	Cb|Y|Cr|Y|Cb|Y|Cr|Y|Cb|Y|Cr|......Cb|Y|Cr|Y
1	Cb|Y|Cr|Y|Cb|Y|Cr|Y|Cb|Y|Cr|......Cb|Y|Cr|Y
.      *         * 
287	Cb|Y|Cr|Y|Cb|Y|Cr|Y|Cb|Y|Cr|......Cb|Y|Cr|Y   Field 1 End
.
.
575	Cb|Y|Cr|Y|Cb|Y|Cr|Y|Cb|Y|Cr|......Cb|Y|Cr|Y   Field 2 End

SIF Y=360*288 U=180*144 V=180*144

the '*'s in up views are the SIF datas coming from ITU656 datas;


***********************************************************************************************/

#define CIF 1

#ifdef CIF

#define ST_ROW 
#define ED_ROW
#define ST_COL
#define ED_COL 

#endif


int
main(int argc,char ** argv)
{
	int sockfd,n,fd;
	char *rcvbuf;
	struct sockaddr_in servaddr;
	
	rcvbuf=(char *)malloc(sizeof(char)*BUFLEN);
	
	if(argc!=2){
		printf("%s <IP address>\n",argv[0]);
		exit(0);
	}
	
//	fd=open("/home/out.dat",O_RDWR |O_CREAT,S_IEXEC|S_IWRITE);
	fd=open("/home/out.dat",O_RDWR |O_CREAT,S_IXUSR|S_IXUSR);
	
	sockfd=socket(AF_INET,SOCK_STREAM,0);
	if(sockfd<0){
		fprintf(stderr,"socket creating error!\n");
		exit(1);
	}
	memset(&servaddr,0,sizeof(struct sockaddr_in));
	
	servaddr.sin_family=AF_INET;
	servaddr.sin_port=htons(7);

	if(inet_aton(argv[1],&servaddr.sin_addr)<=0){
		printf("inet_pton call error for %s\n",argv[1]);
		exit(0);
	}
	printf("Ip= %x\n",servaddr.sin_addr.s_addr);

	if(connect(sockfd,(struct sockaddr *)(&servaddr),sizeof(struct sockaddr_in))<0){
		printf("connect error\n");
		exit(2);
	}

	n=readn(sockfd,rcvbuf,BUFLEN);
	
	printf("ssize_t 's size if %d\n",sizeof(ssize_t));
	printf("n 's size if %d\n",sizeof(n));
	printf("read n=%d\n",n);
	if (n==-1){
			fprintf(stderr,"read error in client socket!\n");
			exit(3);
	}
	
//	add_rgbhead(rcvbuf,BUFLEN);
	write(fd,rcvbuf,BUFLEN);
	exit(0);
}


ITU656_SIF(char *input,char *output)
{
	int row,col;
	
	
	for(row=0;row<288;row++)
		for(col=0;col<1440;col=col+8){
			if(row%2==0){
				Cb_buf++=input[row*1440+col];
				Y_buf++=input[row*1440+col+1];
				Cr_buf++=input[row*1440+col+2];
				Y_buf++=inut[row*1440+col+5];
			}
			else {
				Y_buf++=input[row*1440+col+1];
				Y_buf++=inut[row*1440+col+5];
			}
			
			

⌨️ 快捷键说明

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