in_addr_t inet_addr(const char* strptr);
《下面涉及的函式都將以此種方式解釋》
序 3.
函式引數:字串
位元組序:不同型別的cpu中,記憶體儲存多位元組整數序有兩種方法---稱為主機位元組序(hbo)。
網路中傳輸的資料必須按網路位元組序,即大端位元組序執行!
在大部分pc機上,當應用程序將整數送入socket前需要轉化成網路位元組序(nbo)。
主機位元組序到網路位元組序的轉化函式:
u_long htonl (u_long hostlong);
u_short htons(u_short short);
網路位元組序到主機位元組序的轉化函式:
u_long ntohl(u_long hostlong);
u_short ntohs(u_short short);
建立套接字函式:
int socket (int domain,int type,int proctcl);
domain引數為:
pf_inet internet 協議 (一般情況下都用pf_inet)
pf_unix unix協議
pf_ns
pf_implink
type為套接字型別:
sock_stream 流式套接字 tcp用
sock_dgram 資料報套接字 udp用
sock_raw 原始套接字
protocol引數設定為0
返回值為檔案描述符(sockfd)。
用socket產生的檔案描述符來繫結ip位址和埠號
int bind(int sockfd,struct sockaddr *my_addr,int addrlen);
sockfd :socket的返回值
第二個引數是結構體指標,在**中會注釋
第三個引數是結構體的長度
設定監聽的函式:
int listen(int sockfd,int backlog);
sockfd:監聽鏈結的套接字
返回值:成功返回0失敗返回-1.
int accept(int sockfd,struct sockaddr*addr,socklen_t*addrlen);
sockfd:監聽套接字
第三個引數為:位址結構體的長度
/*函式的演示*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
int main(int argc, const char *argv)
//int socket(int domain, int type, int protocol);建立套接字
if((listenfd = socket(pf_inet,sock_stream,0)) == -1)
memset(&myaddr,0,sizeof(myaddr));用bind前需要填充的結構體中的選項
myaddr.sin_family = pf_inet;
myaddr.sin_port = htons(atoi(argv[2]));
myaddr.sin_addr.s_addr = inet_addr(argv[1]);
//int bind(int sockfd, const struct sockaddr *addr, 利用bind函式
// socklen_t addrlen);
if(bind(listenfd,(struct sockaddr*)&myaddr,sizeof(myaddr)) == -1)
//int listen(int sockfd, int backlog); 監聽
if(listen(listenfd,15) == -1)
while(1)
printf("welcome to server : [%s] [%d]\n",
inet_ntoa(peeraddr.sin_addr),
ntohs(peeraddr.sin_port));
close(conntfd);
}return 0;}
此程式中可能存在漏洞希望多多包涵!!!
Linux系統程式設計之程序
程序狀態 4 5種 就緒 初始化 執行,掛起 等待 停止 pbc成員 1 程序id 2 程序狀態 3 程序切換需要儲存和恢復的cpu暫存器 4 描述虛擬位址空間資訊 5 描述控制終端的資訊 6 當前工作目錄 7 umask掩碼 8 檔案描述符 9 訊號相關的資訊 10 使用者和使用者組id 11 會...
Linux系統程式設計之shell script介紹
shell script 程式指令碼化 是乙個可以實現自動管理系統的好工具!它值得開發人員好好學習,基本上,shell script有點像是早期批處理的檔案,即將一些命令彙整起來一次執行,但是shell script擁有更強大的功能,因為它可以編寫不需要經過編譯就能執行的shell script程式...
Linux系統程式設計之檔案程式設計
目錄 一 檔案程式設計 1 linux檔案 2 檔案描述符 file descriptor 3 常用api open write read lseek close 1 open 開啟檔案函式 2 close 關閉檔案 3 write 寫檔案 4 read 讀檔案 5 lseek 游標定位 linux...