linux c flash安全策略

flash的socket安全策略机制默认端口为843,需要服务器在这个端口响应请求并返回信息;代码如下:

#include<stdio.h>
#include<string.h>
#include<errno.h>
#include<unistd.h>
#include<event.h>

void accept_cb(int fd, short events, void* arg);
void socket_read_cb(int fd, short events, void *arg);
int tcp_server_init(int port, int listen_num);

int main(int argc, char** argv)
{

int listener = tcp_server_init(843, 10);
  if( listener == -1 )
  {
    perror(" tcp_server_init error ");
    return -1;
  }

struct event_base* base = event_base_new();

//添加监听客户端请求连接事件
  struct event* ev_listen = event_new(base, listener, EV_READ | EV_PERSIST, accept_cb, base);
  event_add(ev_listen, NULL);

event_base_dispatch(base);
  return 0;
}

void accept_cb(int fd, short events, void* arg)
{
  evutil_socket_t sockfd;

struct sockaddr_in client;
  socklen_t len;

sockfd = accept(fd, (struct sockaddr*)&client, &len );
  evutil_make_socket_nonblocking(sockfd);

printf("accept a client %d\n", sockfd);

struct event_base* base = (struct event_base*)arg;

//仅仅是为了动态创建一个event结构体
  struct event *ev = event_new(NULL, -1, 0, NULL, NULL);
  //将动态创建的结构体作为event的回调参数
  event_assign(ev, base, sockfd, EV_READ | EV_PERSIST, socket_read_cb, (void*)ev);

event_add(ev, NULL);
}

void socket_read_cb(int fd, short events, void *arg)
{
  char msg[4096];
  struct event *ev = (struct event*)arg;
  int len = read(fd, msg, sizeof(msg) - 1);
  msg[len] = ‘\0‘;

char *reply_msg = "<?xml version=\"1.0\"?><cross-domain-policy><site-control permitted-cross-domain-policies=\"all\"/><allow-access-from domain=\"*\" to-ports=\"*\"/></cross-domain-policy>";
  if(strcmp(msg, "<policy-file-request/>") == 0){
    printf("recv the client msg: %s\r\n", msg);  
    printf("%s\r\n", reply_msg);
 
    write(fd, reply_msg, strlen(reply_msg) );
    
    close(event_get_fd(ev));
    event_free(ev);
    return ;
  }
 
  if( len <= 0 )
  {
    printf("some error happen when read\n");
    close(event_get_fd(ev));
    event_free(ev);
    return ;
  }
}

typedef struct sockaddr SA;
int tcp_server_init(int port, int listen_num)
{
  int errno_save;
  evutil_socket_t listener;

listener = socket(AF_INET, SOCK_STREAM, 0);
  if( listener == -1 )
    return -1;

//允许多次绑定同一个地址。要用在socket和bind之间
  evutil_make_listen_socket_reuseable(listener);

struct sockaddr_in sin;
  sin.sin_family = AF_INET;
  sin.sin_addr.s_addr = 0;
  sin.sin_port = htons(port);

if(bind(listener, (SA*)&sin, sizeof(sin)) < 0 )
    goto error;

if(listen(listener, listen_num) < 0)
    goto error;

//跨平台统一接口,将套接字设置为非阻塞状态
  evutil_make_socket_nonblocking(listener);

return listener;

error:
    errno_save = errno;
    evutil_closesocket(listener);
    errno = errno_save;

return -1;
}

2.编译后执行就ok!

gcc -Wall  -I/usr/local/include event.c -L/usr/local/lib -levent

时间: 2024-10-13 02:07:36

linux c flash安全策略的相关文章

uboot 和linux 下flash 写入速度差异分析

韩大卫@吉林师范大学 2015.1.27. 转载请表明出处 ********************************************* uboot 和linux 下flash 的写入速度不一样, 主要原因是两者使用的延迟最小延时时间不一样. linux比较大. 原因如下: flash 芯片手册中有两个重要的时间参数: 第一个是一般的块写入超时时间, 记为time-ty, 第二个是最大的块写入超时时间, 记为time-max. 假设有两个CFI nor flash 芯片, A 的t

Linux下常用安全策略如何设置?

本文和大家分享的主要是linux下常用安全策略设置的一些方法,一起来看看吧,希望对大家学习linux有所帮助. 安全第一"对于linux管理界乃至计算机也都是一个首要考虑的问题.加密的安全性依赖于密码本身而非算法!而且,此处说到的安全是指数据的完整性,由此,数据的认证安全和完整性高于数据的私密安全,也就是说数据发送者的不确定性以及数据的完整性得不到保证的话,数据的私密性当无从谈起! 1. 禁止系统响应任何从外部/内部来的ping请求攻击者一般首先通过ping命令检测此主机或者IP是否处于活动状态

linux下flash的安装

linux的初学者可能会遇到各种各样的问题,其中的问题就有一个,linux下的flash插件怎么安装呢? 首先前往flash官网下载好对应的文件,然后提取里面的一个叫做 libflashplayer.so 的文件. 然后在  USR/LIB/MOZILLA/PLUGINS 建立这几个文件夹(如果没有请建立,如果已经存在的话就不要建立了.) 最后将上面那个文件复制到刚才建立的文件夹下,然后重启火狐了浏览器就OK了. 上面那个文件如果有下载问题,可以给我留言或者访问我GITHUB账户下载. http

linux操作系统flash player问题--ubuntu

adobe公司停止了对linux系统的flash player的更新,这导致很多网页视频不能够通过浏览器观看,很是不爽! 还好,给用户留下了一点点希望,那便是chrome浏览器. 谷歌浏览器,有一款插件pepper Flash Player,可以在ubuntu的软件中心找到,安装后,就可以在用谷歌浏览器访问之前低版本flash不能打开的网站了.

Linux账户密码过期安全策略设置

在Linux系统管理中,有时候需要设置账号密码复杂度(长度).密码过期策略等,这个主要是由/etc/login.defs参数文件中的一些参数控制的的.它主要用于用户账号限制,里面的参数主要有下面一些: /etc/login.defs: # Password aging controls: # #       PASS_MAX_DAYS   Maximum number of days a password may be used. #       PASS_MIN_DAYS   Minimum 

linux安装flash player来播放视频

1下载64位flashplayer插件,可在此下载(偷偷赚俩金币,为省金币也可到官网去搜),得到flashplayer11_b2_install_lin_64_080811.tar.gz: http://download.csdn.net/detail/vipclx/6697553 2)如下安装仅针对火狐浏览器: <1> ,解压flashplayer11_b2_install_lin_64_080811.tar.gz tar  -zxvf  flashplayer11_b2_install_l

Linux服务器安全策略实战

课程介绍 安全是IT行业一个老生常谈的话题了,从近几年层出不穷的安全事件中折射出了很多安全问题,处理好信息安全问题已变得刻不容缓. 因此做为运维人员,就必须了解一些安全运维准则,同时,要保护自己所负责的业务. 本课程主要讲解Linux服务器的安全策略. 课程目标 掌握Linux服务器安全策略 适合人群 运维工程师 课时列表 课时1:Linux服务器后门入侵检测工具和使用方法 课时2:Linux服务器遭受网络攻击后的处理思路和措施 开始学习:http://click.aliyun.com/m/27

Linux、Windows Server Password Security Policy Strengthen

catalog 1. windows Security and Protection(Logon and Authentication) 2. windows密码强制安全策略 3. PAM(Pluggable Authentication Modules) 4. linux密码强制安全策略配置 1. windows Security and Protection(Logon and Authentication) This page lists resources for logon and a

Linux系统基础入门

1.描述计算机的组成及其功能 计算机有五大组成部分:运算器,控制器,存储器,输入设备和输出设备. 运算器是负责进行数据加工和数据运算的:一般在集成在cpu内 控制器是负责进行计算机各设备的控制:一般集成在cpu内 存储器是负责记录存储数据用的:例如硬盘,内存等 输入设备是负责计算机接受用户来自于其他设备指令的:例如键盘,鼠标等 输出设备是负责输出计算机处理结果的设备:例如显示器等 2.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别. Linux有三大发行版 slackware其中