1.wsastartup函式
用於初始化winsock
[宣告]
intwsastarup(word wversionrequested,lpwsadata lpwsadata);
[引數]
wversionrequested - 要求使用winsock的最低版本號
lpwsadata - winsock的詳細資料
[返回值]
當函式成功呼叫時返回0
失敗時返回非0的值
2.socket函式
用於生成socket(soket descrīptor)
[宣告]
socket socket(int af,int type,int protocol);
[引數]
af - 位址家族(通常使用:af_inet)
type - socket的種類
sock_stream : 用於tcp協議
sock_dgram : 用於udp協議
protocol - 所使用的協議
[返回值]
當函式成功呼叫時返回乙個新的socket(socket descrīptor)
失敗時返回invalid_socket.
3.inet_addr函式
把好象"***.***.***.***"的10進製的ip位址轉換為32位整數表示方法
[宣告]
unsigned long inet_addr ( const char far *cp );
[引數]
cp - 指向用"***.***.***.***"的10進製來表示的ip位址字串的指標
[返回值]
當函式成功呼叫時返回用32位整數表示的ip位址(按網路位元組排列順序)
失敗時返回inaddr_none.
4.gethostbyname函式
可以從主機名獲取主機資料.
[宣告]
struct hostent far * gethostbyname ( const char far *name );
[引數]
name - 指向主機名字串的指標
[返回值]
當函式成功呼叫時返回主機資訊
失敗時返回null(空值)
5.bind函式
指定本地ip位址所使用的埠號時候使用
[宣告]
int bind ( socket s , const struct sockaddr far *addr , int namelen );
[引數]
s - 指向用socket函式生成的socket descrīptor
addr - 指向socket位址的指標
namelen - 該位址的長度.
[返回值]
當函式成功呼叫時返回0
呼叫失敗時返回 socket_error
6.connect函式
用於與伺服器建立連線,發出連線請求,必須在引數中指定伺服器的ip位址和埠號
[宣告]
int connect (socket s , const struct sockaddr far *name , int namelen );
[引數]
s - 指向用socket函式生成的socket descrīptor
name - 指向伺服器位址的指標
namelen - 該位址的長度.
[返回值]
當函式成功呼叫時返回0
呼叫失敗時返回 socket_error
7.select函式
可以用於調查乙個或多個socket的狀態.
[宣告]
int select ( int nfds , fd_set far *readfds , fd_set far *writefds , fd_set far *exceptfds , const struct timeval far *timeout );
[引數]
nfds - 在windows socket api 中該引數可以忽略,通常賦予nill值
readfds - 由於接受的socket裝置的指標
writefds - 用於傳送資料的socket裝置的指標
exceptfds - 檢查錯誤的狀態
timeout - 超時設定
[返回值]
返回大於0的值時,表示與條件相符的socket數
返回0表示超時
失敗時返回socket_error
8.recv函式
利用socket進行接受資料.
[宣告]
int recv ( socket s , char far *buf , int len , int flags );
[引數]
s - 指向用socket函式生成的socket descrīptor
buf - 接受資料的緩衝區(陣列)的指標
len - 緩衝區的大小
flag - 呼叫方式(msg_peek 或 msg_oob)
[返回值]
成功時返**到的位元組數.
如果連線被中斷則返回0
失敗時返回 socket_error
9.sendto函式
利用socket進行傳送資料.
[宣告]
int sendto ( socket s , const char far *buf , int len , int flags , const struct sockaddr far *to , int token );
[引數]
s - 指向用socket函式生成的socket descrīptor
buf - 接受資料的緩衝區(陣列)的指標
len - 緩衝區的大小
flag - 呼叫方式(msg_dontroute , msg_oob)
to - 指向傳送方socket位址的指標
token - 傳送方socket位址的大小
[返回值]
成功時返回已經傳送的位元組數.
失敗時返回socket_error
以上適合於基於udp的socket套接字程式設計,和tcp的socket主要區別在建立socket的時候選擇的資料流方式,然後就是在傳送和接收的函式是不同的.下次會寫上關於socket的詳細資料.
socket程式設計相關函式
本文旨在整理一下linux下socket程式設計時一些常用的一些理解總結,如有不足希望大家批評指點 linux version 3.10.0 862.14.4.el7.x86 64 gcc version 4.8.5 20150623 red hat 4.8.5 28 gcc tcp的伺服器端soc...
網路程式設計 socket相關概念
socket介紹 socket位址 了解網路程式設計需要先了解計算機通訊中位元組的儲存順序 考慮32位機,cpu累加器一次能裝載4位元組。這4位元組在記憶體的排列順序影響被累加器裝載成的整數值。位元組序分為大端位元組序 big endian 和小端位元組序 little endian 傳送端總是要把...
解析socket程式設計的相關函式
1.什麼是套接字 乙個完整的網路通訊需要乙個五元組來標識 協議 本地位址 本地埠號 遠端位址 遠端埠號。tcp用主機的ip位址加上主機上的埠號作為tcp連線的端點,這種端點就叫做套接字 流式套接字 sock stream tcp the transmission control protocol 協...