📄 udpclient1.c
字号:
#include <stdio.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#include <unistd.h>#include <string.h>#include <errno.h>#include <stdlib.h>#include <netdb.h>#define PORT 1234#define MAX 13000int main(int argc,char *argv[]){int fd, numbytes,i,jpegsize;unsigned char buf[MAX];struct sockaddr_in server,reply;FILE *fp;struct hostent *he;if(argc!=3){printf("usage:%s<ip address>\n",argv[0]);exit(1);}if((he=gethostbyname(argv[1]))==NULL){printf("get error");exit(1);}if((fd=socket(AF_INET,SOCK_DGRAM,0))==-1){printf("creat socket error");exit(1);}bzero(&server,sizeof(server));server.sin_family=AF_INET;server.sin_port=htons(PORT);server.sin_addr=*((struct in_addr *)he->h_addr);sendto(fd,argv[2],strlen(argv[2]),0,(struct sockaddr *)&server,sizeof(struct sockaddr));while(1){int len;static int l=0;//static int k=0;//numbytes=recvfrom(fd,buf,MAX,0,(struct sockaddr *)&reply,&len);//printf("server message: %d ",numbytes);if((numbytes=recvfrom(fd,buf,MAX,0,(struct sockaddr *)&reply,&len))==-1){printf("recv eoor");exit(1);}else l++;printf("the frame number is %d\n",l);//printf("len is %d",len);//if(len!=sizeof(struct sockaddr)){//printf("re ma from other server");//continue;}for ( i=7000; i< MAX; i++) { if ((buf[i] == 0xFF) && (buf[i+1] == 0xD9)){ jpegsize=i+2; break;}}if(l==1150){fp = fopen("/usr/4.jpg", "w");//if (fp == NULL) {//fprintf(stderr, "file creation failed");//exit(1);}fwrite(buf, jpegsize, 1, fp);fclose(fp);}//if(getchar()=='q')break;}close(fd);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -