下決心要重新梳理一下網路的相關知識,計畫要熟悉tcpdump
工具以及linux網路程式設計,尤其是要把同步非同步,阻塞非阻塞那塊弄清楚,如果可能的話,熟悉一下libuv
這樣的庫。
本週參照網上資料的**,實現了乙個簡單echo server,從socket中讀取資料並且寫回,用telnet測試後發現成功,也用tcpdump工具進行了抓包,獲取到了一些資訊。
echo server的實現如下
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define bufsize 1024
void
error
(char
*msg)
intmain
(int argc,
char
**ar**)
portno =
atoi
(ar**[1]
);listenfd =
socket
(af_inet,sock_stream,0)
;if(listenfd <0)
error
("error opening socket");
optval =1;
setsockopt
(listenfd,sol_socket,so_reuseaddr,
(const
void*)
&optval,
sizeof
(int))
;bzero((
char*)
&serveraddr,
sizeof
(serveraddr));
serveraddr.sin_family = af_inet;
serveraddr.sin_addr.s_addr =
htonl
(inaddr_any)
; serveraddr.sin_port =
htons((
unsigned
short
)portno)
;//bindingif(
bind
(listenfd,
(struct sockaddr*
)&serveraddr,
sizeof
(serveraddr)
)<0)
error
("error on binding");
//listenif(
listen
(listenfd,5)
<0)
error
("error on listen");
clientlen =
sizeof
(clientaddr)
;while(1
)}
用完成埠寫的echo server
完成埠網上的例子很多,但覺得都挺複雜的 寫了乙個簡化版的,方便學習,也加了注釋。有任何問題,歡迎跟我討論。來了 include winsock2.h include mswsock.h include windows.h include iostream using namespace std in...
對c語的認識
c語言是什麼。c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯 處理低階儲存器 產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。怎樣學好c語言 1 學好c語言,你可以很好地應付任何一種程式設計工具。2 一定要多上機練習,通過程式了解相關知識。幾經反...
初學c語心得
在科技高度發展的今天,計算機在人們之中的作用越來越突出。而c語言作為一種計算機的語言,我們學習它,有助於我們更好的了解計算機,與計算機進行交流。在這個星期裡,我們在專業老師的帶領下進行了c語言程式實踐學習。由此對c語言有了一定的了解,但是也僅僅是停留在了解的範圍,對裡面的好多東西還是很陌生,更多的在...