套接字的建立
1.開啟檔案
#include
#include
#include
//path: 檔名的字串位址
//flag: 檔案開啟模式資訊
intopen
(const
char
*path,
int flag)
;
成功返回檔案描述符,失敗返回-1。
flag引數具體見表:
2.關閉檔案
#include
//需要關閉的檔案(或套接字)的檔案描述符
intclose
(int fd)
;
成功返回0,失敗返回-1。
3.將資料寫入檔案
#include
//fd:資料傳輸的檔案描述符
//buf:要傳輸的資料的緩衝位址
//nbytes:要傳輸的資料的位元組數
ssize_t write
(int fd,
const
void
*buf, size_t nbytes)
;
成功返回寫入的位元組數,失敗返回-1。
此函式定義中, size_t是通過typedef宣告的unsigned int型別。對ssize_t來說, size_t前面多加的s代表signed,即ssize_t是通過typedef宣告的signed int型別。
4.讀取檔案資料
與前面的write對應。
#include
//fd:資料傳輸的檔案描述符
//buf:要儲存接收資料的緩衝位址
//nbytes:要讀入的資料的位元組數
ssize_t read
(int fd,
void
*buf, size_t nbytes)
;
成功返回讀入的位元組數(遇到檔案結尾返回0),失敗返回-1。
1.呼叫socket函式建立
#include
intsocket
(int domain,
int type,
int protocol)
;
成功返回檔案描述符,失敗返回-1。
2.呼叫bind函式為socket分配ip位址和埠號
int
bind
(int sockfd,
struct sockaddr *myaddr, socklen_t addrlen)
;
成功返回0,失敗返回-1。
3.呼叫listen函式使socket轉為可接受連線的狀態。
int
listen
(int sockfd,
int backlog)
;
成功返回0,失敗返回-1。
4.呼叫accept函式受理連線請求
int
accept
(int sockfd,
struct sockaddr *addr, socklen_t *addrlen)
;
1.建立tcp套接字
#include
int tcp_socket =
socket
(pf_inet, sock_stream, ipproto_tcp)
;
2.建立udp套接字
windows下socket套接字的建立函式與linux下的函式,其函式名和引數名都相同,只是返回值型別不同。
網路程式設計 1
1.套接字位址結構 套接字程式設計需要指定套接字的位址作為引數,不同的協議族有不同的位址結構定義方式。這些位址結構通常以sockaddr 開頭,每乙個協議族有乙個唯一的字尾,例如對於乙太網,其結構名稱為sockaddr in。1.1 通用套接字位址結構 套接字位址結構 struct sockaddr...
網路程式設計 1
1.前言 公司要為別的公司提供伺服器防護,採用本地環迴,節點 的方法實現對伺服器真實ip進行隱藏。但是有乙個問題 我節點端要建立乙個埠接收對映資料和保活資料,採用固定埠的話,攻擊者很容易通過掃瞄埠來獲取我較多的節點,進行攻擊 2.解決 這裡採用的是通過節點ip來生成乙個隨機埠,客戶端和節點通過這個隨...
網路程式設計1
tcp ip四層模型 應用層 telent,ftp和e mail等 傳輸層 tcp udp 網路層 ip,icmp和igmp 鏈路層 裝置驅動程式及介面卡 如果兩台計算機在不同的網段中,那麼資料從一台計算機到另一台計算機傳輸過程中要經過乙個或多個路由器 鏈路層之下還有物理層,指的是電訊號的傳遞方式,...