设为首页 加入收藏

TOP

嵌入式 hi3518c本地udp套接示例以及sendto用法
2014-11-24 01:09:18 来源: 作者: 【 】 浏览:4
Tags:嵌入式 hi3518c 本地 udp 套接 示例 以及 sendto 用法

嵌入式 hi3518c本地udp套接示例以及sendto用法


/*


Author : kj


Time :2013-12-24 22:05


Notice :


在一个.c中定义的全局变量,需要在其他.c中使用的话,需要的是在使用的.c中


extern struct sockaddr_un server_address_udp;



*/


#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//#include
//#include
#include
#include


#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include


#include



#include
#include
#include
#include
#include
#include



#define SOCK_UNIX_VIDEO_STREAM_FILE_SEVER "/tmp/video1_server"
#define SOCK_UNIX_VIDEO_STREAM_FILE_CLIENT "/tmp/video1_client"



int video_stream_net_func_udp(void)
{
#if 0
int server_sockfd;

//unlink (SOCK_UNIX_VIDEO_STREAM_FILE_SEVER);//delete the file link for the function of bind


server_sockfd = socket (AF_UNIX, SOCK_DGRAM, 0);

server_address_udp.sun_family = AF_UNIX;
//server_address_udp.sin_port=htons(PORT);

strcpy (server_address_udp.sun_path, SOCK_UNIX_VIDEO_STREAM_FILE_SEVER);

joseph_ipnc_s_socket.joseph_ipnc_s_socket_fd_udp_socket_size = sizeof (server_address_udp);

//bind (server_sockfd, (struct sockaddr *)&server_address_udp, server_len);


joseph_ipnc_s_socket.joseph_ipnc_s_socket_fd_udp = 0;
joseph_ipnc_s_socket.joseph_ipnc_s_socket_fd_udp = server_sockfd;


printf("%s %d The udp mode send to jss succeed ,joseph_ipnc_s_socket_fd_udp is %d !\n",__FUNCTION__,__LINE__,joseph_ipnc_s_socket.joseph_ipnc_s_socket_fd_udp);
#else
int client_sockfd, ret;
//struct sockaddr_un pmmanager_addr, pmapi_addr;


client_sockfd = socket(AF_UNIX, SOCK_DGRAM, 0);
if(client_sockfd == -1)
{
perror("cannot create pmapi fd.");
}
unlink(SOCK_UNIX_VIDEO_STREAM_FILE_CLIENT); //configure pmapi's addr
memset(&server_address_client, 0, sizeof(server_address_client));
server_address_client.sun_family = AF_UNIX;
strcpy(server_address_client.sun_path, SOCK_UNIX_VIDEO_STREAM_FILE_CLIENT); //bind pmapi_fd to pmapi_addr
ret = bind(client_sockfd, (struct sockaddr*)&server_address_client, SUN_LEN(&server_address_client));
if(ret == -1)
{
perror("bind error.");
}


//configure pmmanager's addr
memset(&server_address_udp, 0, sizeof(server_address_udp));
server_address_udp.sun_family = AF_UNIX;
strcpy(server_address_udp.sun_path, SOCK_UNIX_VIDEO_STREAM_FILE_SEVER);


joseph_ipnc_s_socket.joseph_ipnc_s_socket_fd_udp = 0;
joseph_ipnc_s_socket.joseph_ipnc_s_socket_fd_udp = client_sockfd;


joseph_personal_video_print("%s %d The udp mode send to jss succeed ,joseph_ipnc_s_socket_fd_udp is %d !\n",__FUNCTION__,__LINE__,joseph_ipnc_s_socket.joseph_ipnc_s_socket_fd_udp);


#endif
return 0;
}



/*
int sendto ( socket s , const void * msg, int len, unsigned int flags, const struct sockaddr * to , int tolen ) ;
sendto(sockfd, buffer, len, 0, (struct addr*)&addr, addr_len); ±
*/


s_length = sendto(joseph_ipnc_s_socket.joseph_ipnc_s_socket_fd_udp, video_buf, video_length, 0,(struct sockaddr*)&server_address_udp,sizeof(struct sockaddr));


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Unix-domain-socket详解UDP 下一篇Android应用安全——(数据抓包)..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: