1.inet_addr()函式
函式作用:
十進位制轉換成二進位制
函式原型:
int inet_addr(const char *strptr);
2.inet_pton函式
函式原型:
int inet_pton(int family,
const char *src,void *dst);
引數:
family:af_inet,ipv4協議; af_inet6,ipv6協議;
src:要轉換的ip位址字串;
dst:存放轉換後的位址的緩衝區
返回值:
成功:0;
出錯:-1;
3.sock
函式原型:
int sock(int family,
int type,int proto);
引數:
family:af_inet,ipv4協議; af_inet6,ipv6協議;
type:sock_stream:tcp
sock_dgram:udp
sock_ram:提供原始網路協議訪問
protocol:傳輸協議編號,設為0
返回值:
成功:返回socket套接字描述符;
出錯:-1
4.bind
函式作用:繫結ip位址
函式原型:
int bind(int sockfd,
struct sockaddr *myaddr,int addrlen);
struct sockaddr
;struct sockaddr_in
;
返回值:
成功:0;
出錯:-1;
5.connect
函式作用:建立socket鏈結,通常客戶端鏈結伺服器使用。
函式原型:
int connect(int sockfd,
struct sockaddr* ser_addr,int addrlen);6.listen
引數:sockfd:套接字描述符;
backlog:允許接入的客戶端數目
返回值:
成功:0;
出錯:-1
7.accept
函式作用:接受socket網路鏈結,客戶端鏈結,3次握手在這裡
函式原型:
int accept(int sockfd,
struct sockaddr* ser_addr,int* addrlen);
引數:addr:鏈結成功,填充遠端客戶機的位址
addrlen:struct sockaddr的長度
返回值:
成功:返回新的socket套接字描述符;
出錯:-1
8.send
函式作用:經過socket傳送資料,向對方傳送資料
函式原型:
int send(int sock_fd,
const void* msg,unsigned int flags);
引數:sock_fd:accept建立起來的socket鏈結描述符,連線遠方的ip位址
msg:傳送的資料
flags:設為0
返回值:
成功:返回實際傳送出去的位元組數;
出錯:-1
9.recv
函式作用:經過socket接收資料
函式原型:
int recv(int sock_fd,
void* buf,int len,unsigned int flags);
引數:sock_fd:accept以後的socket套接字描述符
buf:存放位址
len:資料長度(接收資料的最大長度)
flags:設為0
返回值:
成功:返回成功接收的位元組數;
出錯:-1
網路通訊協議(2)TCP協議的一些事
前面複習了一遍五層網路模型及一些相關的協議,了解了網路通訊的大致樣子 網路通訊協議 1 網路通訊 tcp協議 seq ack 重傳機制 三次握手 四次揮手 總結傳輸控制協議 tcp,transmission control protocol 是一種面向連線的 可靠的 基於位元組流的傳輸層通訊協議 t...
Python 網路程式設計2 TCP
tcp協議全稱 傳輸控制協議,顧名思義,就是要對資料的傳輸進行一定的控制 tcp協議的特點 1 相對於傳輸層的udp協議,tcp協議的特點是面向連線的 可靠的傳輸和位元組流。2 使用tcp協議通訊的雙方必須首先建立連線,然後才能開始資料的讀寫。雙方都必須為該連線分配必要的核心資源,以管理連線的狀態和...
linux網路通訊二(TCP)
tcp通訊 流程圖如下 1 建立 socket套接字 相同2 繫結 將建立的socket套接字返回的控制代碼與本機的ip 埠繫結 相同3 監聽 監聽socket include int listen int s,int backlog s 監聽的控制代碼 backlog 監聽的最大數,預設20 成功...