日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux c账户安全性,linux c flash安全策略

發(fā)布時間:2023/12/19 linux 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux c账户安全性,linux c flash安全策略 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

flash的socket安全策略機制默認端口為843,需要服務(wù)器在這個端口響應(yīng)請求并返回信息;代碼如下:

#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();

//添加監(jiān)聽客戶端請求連接事件

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;

//僅僅是為了動態(tài)創(chuàng)建一個event結(jié)構(gòu)體

struct event *ev = event_new(NULL, -1, 0, NULL, NULL);

//將動態(tài)創(chuàng)建的結(jié)構(gòu)體作為event的回調(diào)參數(shù)

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;

//跨平臺統(tǒng)一接口,將套接字設(shè)置為非阻塞狀態(tài)

evutil_make_socket_nonblocking(listener);

return listener;

error:

errno_save = errno;

evutil_closesocket(listener);

errno = errno_save;

return -1;

}

2.編譯后執(zhí)行就ok!

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

總結(jié)

以上是生活随笔為你收集整理的linux c账户安全性,linux c flash安全策略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。