//client.c ///udpclient.cpp /*#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h>*/ #include "udp_client.h" int sockfd_c = 0; struct sockaddr_in server_addr; int initUdpClient(unsigned port, char *IP) { sockfd_c = socket(PF_INET,SOCK_DGRAM,0); if(-1 == sockfd_c) { printf("socket error\n"); return -1; } bzero(&server_addr,sizeof(server_addr)); server_addr.sin_family = PF_INET; server_addr.sin_port = htons(port); server_addr.sin_addr.s_addr = inet_addr(IP); printf("TTT----port[%d]---IP[%s]\n", port, IP); return 0; } int uninitUdpClient() { close(sockfd_c); sockfd_c = 0; } int c_read(char *buf, int len) { len = recvfrom(sockfd_c, buf, len, 0, NULL, NULL); if(0 > len) { return -1; } return len; } /* ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen); */ int c_write(char *buf, int len) { len = sendto(sockfd_c, buf, len, 0, (struct sockaddr *)(&server_addr), sizeof(server_addr)); if(0 > len) { return -1; } return len; } #if 0 int main(int argc, char * argv [ ]) { int sockfd; int len,i; char buf[1024]={0}; unsigned short port = 0x9999; struct sockaddr_in server_addr; sockfd = socket(PF_INET,SOCK_DGRAM,0); if(-1 == sockfd) { printf("socket error\n"); return -1; } bzero(&server_addr,sizeof(server_addr)); server_addr.sin_family = PF_INET; server_addr.sin_port = htons(port); server_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); printf("TTT---I will login server---->\n"); i = 0; while(1) { memset(buf,0,sizeof(buf)); sprintf(buf,"hello,i am client %d",i); len = sendto(sockfd,buf,strlen(buf),0,(struct sockaddr *)(&server_addr),sizeof(server_addr)); //std::cout<<len<<std::endl; printf("TTT---buf[%s]----------len[%d]\n", buf, len); sleep(1); memset(buf,0,sizeof(buf)); sprintf(buf,"fuck fuck fuck %d",i); len = sendto(sockfd,buf,strlen(buf),0,(struct sockaddr *)(&server_addr),sizeof(server_addr)); printf("TTT---buf[%s]----------len[%d]\n", buf, len); sleep(1); i++; } close(sockfd); return 0; } #endif ========================================================================= //client.h #include <string.h> #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> int initUdpClient(unsigned port, char *IP); int uninitUdpClient(); int c_read(char *buf, int len); int c_write(char *buf, int len); ======================================================================= main_client.c #include "udp_client.h" #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> #define LEN_MAX 1024*200 int main(int argc,char * argv [ ]) { #if 1 //int n = 18000; //system("date"); while(1) { printf("TTT----I am run--n[----]--\n"); usleep(5*1000); } //system("date"); #else int fd = 0; char file_name[] = {"video2.h264"}; long file_len = 0; long n; int i; long len = -1; char *buf = (char *)malloc(LEN_MAX); unsigned port = 0x9999; //char IP[] = {"127.0.0.1"}; char IP[] = {"192.168.3.109"}; if(0 != initUdpClient(port, IP)) { return -1; } i = 0; n = LEN_MAX; while((n -= 32) > 0) { memcpy(buf+i,"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",32); i += 32; } fd = open(file_name, O_RDONLY, 0777); if(fd < 0) { printf("TTT---open fail\n"); } else { printf("TTT---open file[%s]\n", file_name); } i = 0; //len = LEN_MAX; while(1) { // 1024*64 不能发 // 1024*63 可以 len = read(fd, buf, 1024); if(len <= 0) { printf("TTT----read error--- to over\n"); break; } len = c_write(buf, len); if(len < 0) { printf("TTT----len[%ld]---\n", len); }else{ file_len += len; printf("TTT----file_len[%ld]---\n", file_len); } usleep(10*1000); } uninitUdpClient(); #endif return 0; } ========================================================================= ========================================================================= server.c #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include "udp_server.h" int sockfd_s = 0; int initUdpServer(unsigned port) { struct sockaddr_in server_addr; sockfd_s = socket(PF_INET,SOCK_DGRAM,0); if(-1 == sockfd_s) { printf("socket error\n"); return -1; } bzero(&server_addr,sizeof(server_addr)); server_addr.sin_family = PF_INET; server_addr.sin_port = htons(port); server_addr.sin_addr.s_addr = htonl(INADDR_ANY); if(-1 == bind(sockfd_s,(struct sockaddr *)(&server_addr),sizeof(server_addr))) { printf("bind error\n"); return -1; } printf("TTT---UDP SERVER init success\n"); return 0; } int uninitUdpServer() { close(sockfd_s); sockfd_s = 0; } int s_read(char *buf, int len) { len = recvfrom(sockfd_s, buf, len, 0, NULL, NULL); if(0 > len) { return -1; } return len; } int s_write(char *buf, int len) { len = sendto(sockfd_s, buf, len, 0, NULL, NULL); if(0 > len) { return -1; } return len; } #if 0 int main(int argc, char * argv [ ]) { #if 0 int sockfd; int len; struct sockaddr_in server_addr; unsigned short port = 0x9999; char buf[1024]={0}; sockfd = socket(PF_INET,SOCK_DGRAM,0); if(-1 == sockfd) { printf("socket error\n"); } bzero(&server_addr,sizeof(server_addr)); server_addr.sin_family = PF_INET; server_addr.sin_port = htons(port); server_addr.sin_addr.s_addr = htonl(INADDR_ANY); if(-1 == bind(sockfd,(struct sockaddr *)(&server_addr),sizeof(server_addr))) { printf("bind error\n"); return -1; } #endif printf("TTT----I am wait for client msg\n"); while(1) { len = recvfrom(sockfd,buf,1024,0,NULL,NULL); if(0 < len) { printf("%s\n", buf); printf("TTT---buf[%s]--len[%d]\n", buf, len); } else { sleep(1); } } printf("server out"); close(sockfd); return 0; } #endif ======================================================================= server.h #include <unistd.h> #include <stdlib.h>*/ #include <string.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> int initUdpServer(unsigned port); int uninitUdpServer(); int s_read(char *buf, int len); int s_write(char *buf, int len); ========================================================================== //main_server.c #include "udp_server.h" #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int main(int argc, char *argv[]) { long file_len = 0; int fd = 0; char f_name[] = {"write_test2.h264"}; int len = -1; char *buf = (char *)malloc(2048); if(NULL == buf) { printf("TTT----malloc error\n"); return -1; } unsigned port = 0x9999; if(-1 == initUdpServer(port)) { return -1; } fd = open(f_name, O_CREAT|O_RDWR, 0777); if(-1 == fd) { printf("TTT----open file\n"); return -1; } else { printf("TTT----open file[%s]\n", f_name); } while(1) { memset(buf, 0, 2048); len = s_read(buf, 1024); if(0 < len) { //printf("TTT---buf[%s]--len[%d]\n", buf, len); len = write(fd, buf, len); if(0 > len) { printf("TTT----write error--len[%d]\n", len); } file_len += len; printf("TTT----file_len[%ld]---\n", file_len); if(len < 1024) { break; } } usleep(10*1000); } free(buf); buf = NULL; return 0; } |
|
来自: 海漩涡 > 《knowledge》