fooclient.c

来自「基于socket的简单通讯程序」· C语言 代码 · 共 98 行

C
98
字号
#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);
}

		

⌨️ 快捷键说明

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