linux c账户安全性,linux c flash安全策略
flash的socket安全策略机制默认端口为843,需要服务器在这个端口响应请求并返回信息;代码如下:
#include
#include
#include
#include
#include
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\"?>";
if(strcmp(msg, "") == 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
linux c账户安全性,linux c flash安全策略相关推荐
- linux与windows安全性,Linux与Windows安全性比较.doc
/article/61/388/2006/2006071922562.shtml ????安全问题对于IT管理员来说是需要长期关注的.主管们需要一套框架来对操作系统的安全性进行合理的评估,包括:基本安 ...
- 简述linux系统的安全性,Linux操作系统的安全性有哪些过人之处
01用户/文件权限Linux的敲门砖 Linux操作系统的安全性是有目共睹的,相比Windows操作系统,到底Linux有哪些过人之处?这里我们就抛砖引玉,挑选三点重要的特点给大家说明,为什么说Lin ...
- linux cvs账户,在linux下为cvs创建用户
在linux下为cvs创建用户 1.创建可以登陆cvs服务器的用户名和密码: #> su cvsroot #> vi /home/cvsroot/CVSROOT/passwd test1: ...
- linux管理账户是,Linux管理账户
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 1.1 功能 添加新用户 useradd 1.2 参数含义 -c 添加备注 -d 为主目录制定名字 -e 用YYYYY- ...
- 【安全运维】 linux 系统账户,网络,简易安全加固方案(第一部分),经测试可行...
前言 讲到linux系统账户的管理以及安全,就必须涉及 /etc/passwd /etc/shadow 这2个文件 这里以截图中文字说明的方式,来分析这2个文件的内容,并且给出一些实用的安全加固 ...
- Linux提升系统安全性:自动注销 TMOUT
为了增强Linux系统的安全性,我们需要在用户输入空闲一段时间后自动注销并断开终端连接,这个操作可以设置/etc/profile文件中TMOUT值来实现,这样可以有效避免当管理员不在时其他人员对服务器 ...
- 【要闻】Kubernetes安全问题严峻、Linux v5.4安全性浅谈
以下为您奉上今天的开源领域要闻. 谷歌提前发布Android 11首个开发者预览版 谷歌通常会在三月推出即将发布的Android预览版本.但谷歌今年更早实现了该功能,现已发布了Android 11首个 ...
- Linux MTD架构下的nand flash驱动详解
转载自:http://blog.csdn.net/wang_zheng_kai/article/details/18988521 有了前面的基础(Nandflash详解:https://blog.cs ...
- 安全 lynis_如何使用Lynis审核Linux系统的安全性
安全 lynis Fatmawati Achmad Zaenuri/ShutterstockFatmawati Achmad Zaenuri / Shutterstock If you perform ...
最新文章
- shell实现批量在多台windows服务器上执行同一命令并获取返回结果
- 日本搞笑研究:猫睡哪我睡哪,居然对睡眠质量没影响,还有这4点好处?
- (二)TestNG测试框架之注解及属性概览
- 吴恩达机器学习资源汇总帖
- springboot---集成mybits方法
- oracle 窗口函数 (keep)
- view类不响应自定义消息_安卓平台如何给控件添加自定义操作?
- nginx与PHP配置
- python编程(paddle ocr)
- 牛客网训练赛26D(xor)
- golang windows下杀进程
- Java工具-----native2ascii
- mysql连接报错3167_MySQL之使用过程中报错及处理记录(持续更新)
- 纽微特记事:刚内斗胜利,就说业务难做
- 最常用的springmvc注解使用技巧
- c语言图书管理系统简单代码,C语言图书管理系统代码
- 学校图书馆借阅管理系统软件项目分析
- 计算机一级表格技巧,计算机一级考试MS Office应试技巧指导
- 云原生安全之RASP技术(应用运行时自我保护)
- 快讯 | Elon Musk拟跨界做喜剧,号称要建立跨星系传媒帝国Thud!(轰!)
热门文章
- SAP CRM organization Model(组织架构模型)自动决定的逻辑分析
- SAP Spartacus里几个和Focus相关的directive的继承关系以及元素focus是如何实现的
- SAP Spartacus全局配置模块里和layoutSlot相关的配置
- SAP Fiori Elements - how facet is loaded for my productive POC
- SAP Hybris和ABAP Netweaver里的DAO(Data access object)
- where is list binding done for Opportunity S2 view default 20 returns
- 一个短小精悍的在线jshint工具
- 使用Eclipse连接SAP Netweaver系统遇到的错误消息和解决办法
- 如何通过js文件的名称,反查出这个js文件所在project的artifact id和group id
- find out the service list changed with given user which have item category group