📄 fooclient.c.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 + -