Linux C 伺服器端這條線怎麼走?一年半能做出什麼?

時間 2021-05-06 23:33:37

1樓:白伯純

伺服器端是個很大的範圍,提早選定是可以的。

C++和Linux就看機遇吧,畢竟真正有需要極限效能的業務很少。這就不是個人能控制的範圍了。

2樓:喵嗚大將軍

首先可以去調研一下什麼東西值得用cpp做,然後我相信你就可以把勸你做web伺服器的挨個拍死了

既然決定搞cpp了,這幾個方向都可以嘗試:

1.編譯器,本來就是大三大作業,但作業要求一般較低,可以深挖,做的足夠好可以直接做為畢設專案

2.作業系統,難度高於上面的,是自己的課,但一般學校不會給你留個大作業要求寫這個

3.資料庫,注意不是讓你用,是讓你寫,模擬乙個sqllite之類的以上作為本科畢設專案應該都算有競爭力的,和學業並不衝突

3樓:slug

基礎紮實真的很重要,不過我覺得學習枯燥的基礎理論知識就跟走迷宮一樣,不到最後走出出口,你就始終處在一種迷霧重重之中。雖然還沒到達出口,但你要堅信你在離出口越來越近,不要半途而廢。等你眼前一亮,找到出口是的豁然開朗時,你就會發現以前的一切迷茫都是值得的。

4樓:於欣軒

實踐1.回聲伺服器的實踐(長連線)

echo server echo client的各種版本

乙個客戶端的

能處理多個客戶端的

fork多程序處理多個客戶端的

pthread多執行緒處理多個客戶端的

select

epoll

鎖2.web伺服器的實踐(短連線)

和上面差不多

web伺服器多程序

web伺服器多執行緒

web伺服器epoll

3.捷徑

找個靠譜的公司去實習,看公司咋搞的,最好有個師傅帶你飛

理論指導實踐1.作業系統

程序 執行緒

記憶體 io

2.資料結構

3.設計哲學

4.語言

5.資料庫

推薦書Python網路程式設計基礎

UNIX網路程式設計

tcp ip詳解

現代作業系統

資料結構

linux基礎可以看鳥哥

這個是照著《TCP/IP網路程式設計》寫的好像是個南韓人寫的書,感覺一步一步的挺好的。這個不是你們想要的c++的,但是你把這段c寫明白了,c++也就是差不多的樣子。其實我當時是先看的python networking programing然後理解明白這個。

修改底下那個例子是個很好的過程,現在底下那個例子只是個單使用者鏈結一次,你把他做成多使用者的慢慢就會對這個東西理解越來越深。記得unix網路程式設計上講的是獲取時間的例子。

echo server

#include

#include

#include

#include

#include

#include

void

error_handling

(char

*message

);int

main

(int

argc

,char

*argv

)serv_sock

=socket

(PF_INET

,SOCK_STREAM,0

);if

(serv_sock==-

1)error_handling

("socket() error"

);memset(&

serv_addr,0

,sizeof

(serv_addr

));serv_addr

.sin_family

=AF_INET

;serv_addr

.sin_addr

.s_addr

=htonl

(INADDR_ANY

);serv_addr

.sin_port

=htons

(atoi

(argv[1

]));if(

bind

(serv_sock,(

struct

sockaddr*)

&serv_addr

,sizeof

(serv_addr

))==-1)

error_handling

("bind() error"

);if

(listen

(serv_sock,5

)==-1)

error_handling

("listen() error"

);clnt_addr_size

=sizeof

(clnt_addr

);clnt_sock

=accept

(serv_sock,(

struct

sockaddr*)

&clnt_addr,&

clnt_addr_size

);if

(clnt_sock

==-1

)error_handling

("accept() error"

);write

(clnt_sock

,message

,sizeof

(message

));close

(clnt_sock

);close

(serv_sock

);return0;

}void

error_handling

(char

*message

)client

#include

#include

#include

#include

#include

#include

void error_handling(char *message);

int main(int argc, char* argv)

sock=socket(PF_INET, SOCK_STREAM, 0);

if(sock == -1)

error_handling("socket() error");

memset(&serv_addr, 0, sizeof(serv_addr));

serv_addr.sin_family=AF_INET;

serv_addr.sin_addr.s_addr=inet_addr(argv[1]);

serv_addr.sin_port=htons(atoi(argv[2]));

if(connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr))==-1)

error_handling("connect() error!");

str_len=read(sock, message, sizeof(message)-1);

if(str_len==-1)

error_handling("read() error!");

printf("Message from server: %s \n", message);

close(sock);

return 0;

}void error_handling(char *message)

5樓:shooting

嘛叫linux伺服器方向?啥伺服器的啥方向?如果只是想說,linux+不做ui的話,還真難說能做出個啥有用的來……沒ui好多有趣的都沒的做……真正有用的乙個人一年還不一定搞得出……

要麼寫爬蟲玩吧,好像入門的介紹挺多,也不用啥ui。爬下來的東西還可以二次開發玩

或者……寫個p2p?夠好玩但是沒ui大概每人用,而且不是個server……

這問題挺難……

6樓:馬達

在學校,一定要把基礎打牢:作業系統,資料結構和網路基礎。專案經驗在以後的工作中會很快跟上,這時候就看誰的基礎好,誰就走的遠。

如果基礎不好,別人已經學以至用,你還是補基礎課;差距很明顯。

android端與伺服器端RSA雙向加密問題

1 分成兩部分,使用對稱金鑰加密的密文 A 和使用公鑰加密的對稱金鑰 B 一起傳送給服務端 2 服務端使用私鑰解密B得到對稱金鑰 3 使用對稱金鑰來解密密文A,從而得到內容。 記住 用對方的公鑰加密是為了保密,這個只有對方用私鑰能解用自己的私鑰加密是為了防抵賴,能用我的公鑰解開,說明這是我發來的,不...

Java伺服器端有比spring還優秀的框架嗎

穿越 有,但是沒spring全家桶方便和齊全。而且spring已經快成了行業事實標準了,使用者基礎太龐大,即使有更好的但是沒有推廣開來,也不會有太多人知道,或者僅限於企業內部使用。 PrimaryK 全面優秀的應該沒有,不然也不會大一統.部分優秀的還是有一些的,比如vert.x.簡單的非同步程式設計...

好的伺服器端 Node js 日誌方案應該考慮和解決哪些問題

高效能 是乙個大前提,當然什麼是高效能,這又是比較主觀的看法 採集的話,感覺可以交給 ELK 之類的東西,日誌庫專注自己就好了 itlr 乙個非常輕量的 Node.js 伺服器端框架 裡是沒有必要去關心logging的,讓使用框架的人自己去整合就行了,除非你能作出特別好的封裝和抽象。 最初團隊有精力...