//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;
}