搭建自己的簡易伺服器(公網)

2021-09-29 07:00:19 字數 3383 閱讀 8119

大部分時候做嵌入式開發的,如果是wifi,可以工作在區域網,至於物聯網裝置,插手機卡的那種就需要公網ip,測試起來相對比較麻煩,電信寬頻使用者有的可以對映使用,但是ip會改變,需要乙個裝置不停的傳送心跳,維持這個ip,測試有很大的侷限性。網域名稱相對而言較好,但是一旦ip變了,反映時間有點長。花生殼相對而言還是不錯的,有流量控制,必須有實際裝置。本文不具體討論上述方式。這裡使用乙個公網的伺服器測試使用,還是免費的哦,目前絕對不花錢,也不搞破解。使用的系統是centos,會c語言即可。(2019-11-3)

指令說明:

一、 檢查伺服器是否已經安裝

#rpm  -qa  |grep   vsftpd

二、安裝 如果輸入上面的命令提示沒有,那麼進行安裝

#yum install  -y  vsftpd

三、檢查服務是否正常啟動

1、啟動 vsftp 服務

#systemctl   start  vsftpd

2、檢查服務是否正常啟動

#ps -ef|grep vsftpd

這個表示ftp 已經正常啟動

3、把服務新增到開機啟動項

#systemctl   enabled  vsftpd

四、修改 配置檔案

1、進到安裝vsftpd安裝目錄

#cd  /etc/vsftpd

2、編輯 vsftpd.conf 配置檔案

# vi /etc/vsftpd/vsftpd.conf  

修改 一下幾個地方 分別開啟:  

write_enable=yes

local_enable=yes

上述是伺服器端安裝ftp。

以下是通過winscp上傳原始檔到伺服器(centos)系統,並且編譯以及執行。

winscp 是乙個 windows 環境下使用的 ssh 的開源圖形化 sftp 客戶端。同時支援 scp 協議。它的主要功能是在本地與遠端計算機間安全地複製檔案,並且可以直接編輯檔案。

以下是伺服器測試**

server.c

#include #include #include #include #include #include #include #include #include #include #define port        12301

#define maxsize 1024

#define listenq 5

#define fdsize 1000

#define epollevents 100

//函式宣告

//建立套接字並進行繫結

static int socket_bind(int port);

//io多路復用epoll

static void do_epoll(int listenfd);

//事件處理函式

static void

handle_events(int epollfd,struct epoll_event *events,int num,int listenfd,char *buf);

//處理接收到的連線

static void handle_accpet(int epollfd,int listenfd);

//讀處理

static void do_read(int epollfd,int fd,char *buf);

//寫處理

static void do_write(int epollfd,int fd,char *buf);

//新增事件

static void add_event(int epollfd,int fd,int state);

//修改事件

static void modify_event(int epollfd,int fd,int state);

//刪除事件

static void delete_event(int epollfd,int fd,int state);

int main(int argc,char *ar**)

static int socket_bind(int port)

bzero(&servaddr,sizeof(servaddr));

servaddr.sin_family = af_inet;

servaddr.sin_addr.s_addr = htonl(inaddr_any); /*任意本地位址*/

servaddr.sin_port = htons(port);

if (bind(listenfd,(struct sockaddr*)&servaddr,sizeof(servaddr)) == -1)

return listenfd;

}static void do_epoll(int listenfd)

close(epollfd);

}static void

handle_events(int epollfd,struct epoll_event *events,int num,int listenfd,char *buf)

}static void handle_accpet(int epollfd,int listenfd)

}static void do_read(int epollfd,int fd,char *buf)

else if (nread == 0)

else

}static void do_write(int epollfd,int fd,char *buf)

else

//修改描述符對應的事件,由寫改為讀

modify_event(epollfd,fd,epollin);

memset(buf,0,maxsize);

}static void add_event(int epollfd,int fd,int state)

static void delete_event(int epollfd,int fd,int state)

static void modify_event(int epollfd,int fd,int state)

客戶端源**是採用比select機制要好的epoll機制,對於伺服器而言,均衡考慮使用非同步較妥當。

Python搭建簡易伺服器

使用basehttprequesthandler處理請求,httpserver建立socket伺服器 利用requests庫進行post,get 定義好c s間傳遞的引數和協議 對引數進行處理後進行返回 讀取post傳遞的資料報,字元長度不能省略不然會導致阻塞 do sth self.send re...

nodejs 搭建簡易伺服器

www資料夾下 template資料夾下 const static require express static 託管靜態檔案 const cookieparser require cookie parser 解析cookie const cookiesession require cookie s...

linux中搭建公網ftp伺服器

linux搭建 ftp伺服器彙總整理 使用截圖如下 一 檢查linux中是否已經安裝 vsftpd 服務端軟體 rpm qa grep vsftpd 二 解除安裝linux中的 vsftpd 服務端軟體 rpm e vsftpd安裝版本號 三 安裝linux中的 vsftpd 服務端yum inst...