1.socket
函式原型:int socket(int domain,int type,int protocol)
函式作用:建立乙個新的socket套接字
函式引數:domain:建立何種位址型別;af_inet,ipv4的 網路協議
af_inet6,ipv6的網路協議
type:sock_stream; tcp,面向資料流的
sock_dgram; udp,使用不連續不可信賴的資料報
sock_raw; 提供原始網路協議
protocol:傳輸協議編號,設為0即可
返回值:成功返回socket套接字描述符,失敗返回-1
標頭檔案:#include
2.bind
函式作用:繫結ip位址
函式原型:int bind(int socket,struct sockaddr *my_addr,int addlen)
函式引數:socket:socket套接字描述符
my_addr:主機位址
addlen:sockaddr位址長度
標頭檔案:#include
#include
關於struct sockaddr my_addr結構體:
[cpp]view plain
copy
struct
sockaddr
; struct
sockaddr_in
; struct
in_addr
3.connect
函式作用:建立socket連線的,通常客戶端連線伺服器使用
函式原型:int connect(int sockfd,struct sockaddr * serv_addr,int addlen)
函式引數:serv_addr:表示要連線的伺服器ip位址
addlen:struct socket 的長度
返回值:成功0,出錯-1
4.listen
函式作用:聆聽網路,等待連線
函式原型:int listen(int sockfd,int backlog)
函式引數:backlog:允許接入的客戶端數目
注意:listen並沒有連線,只是設定socket的設定格式,真正連線的是accept
返回值:成功0,出錯-1
5.accept
函式作用:接受網路連線,客戶端連線,三次握手在這個地方
函式原型:int accept(int sockfd,struct sockaddr *addr,int *addlen)
函式引數:addr:連線成功,填充遠端客戶端的位址
addlen:struct sockaddr的長度
返回值:成功返回新的sock_fd,失敗-1
6.send
函式作用:經過socket傳送資料,向對方傳送資料
函式原型:int send(int sock_fd,const void *msg,int len,unsigned int flags)
函式引數:sock_fd:accept建立起來的socket連線描述符,連線遠方的ip位址
msg:傳送的資料
len:資料長度
flags:設為0
返回值:成功返回實際傳送出去的位元組數,出錯-1
7.recv
函式作用:經過socket接收資料
函式原型:int recv(int sock_fd,void *buf,int len,unsigned int flags)
函式引數:sock_fd:accept建立起來的socket連線描述符,連線遠方的ip位址
buf:存放地在
len:接收資料最大長度
flags:設為0
返回值:成功返回實際接收出去的位元組數,出錯-1
TCP IP相關的網路程式設計函式
1.socket 函式原型 int socket int domain,int type,int protocol 函式作用 建立乙個新的socket套接字 af inet6,ipv6的網路協議 type sock stream tcp,面向資料流的 sock dgram udp,使用不連續不可信賴...
TCP IP 相關總結
1.三次握手協議 在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。第一次握手 建立連線時,客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn ack j 1 同時自己也傳送乙個syn...
tcp ip協議等相關知識
先扒一扒http協議背景?因為http協議是屬於tcp ip協議簇的,所以先簡單介紹下與http相關的tcp ip知識。tcp ip簡介。tcp ip四層模型。確保可靠性的tcp協議。傳送端在層與層之間傳輸資料時,每經過一層時必定會被打上乙個該層所屬的首部資訊。反之,接收端在層與層傳輸資料時,每經過...