函式原型:
intsocket(int domain, int type, int protocol);
domain:
即協議域,又稱為協議族(family)
af_inet : ipv4
af_inet6 : ipv6
af_local(或稱af_unix
,unix域socket)
af_route
type:
sock_stream 1 /* stream socket */ 流(tcp)
sock_dgram 2 /* datagram socket */ 包(udp)
sock_raw 3 /* raw-protocol inte***ce */ 原始
sock_rdm 4 /* reliably-delivered message */可靠的資料報連線
sock_seqpacket 5 /* sequenced packet stream */ 有序的資料流
protocol:
常用的協議有
ipproto_tcp:tcp傳輸協議
ipptoto_udp:udp傳輸協議
ipproto_sctp:stcp傳輸協議
ipproto_tipc:tipc傳輸協議
struct
in_addr ;
in_addr_t 一般為 32位的unsigned int, 使用函式in_addr_t inet_addr(const char* strptr)轉化,如:
struct in_addr s;
s.s_addr = inet_addr("192.168.1.69");
建立udp socket
int usock = invail_socket;
struct sockaddr_in udpsvr_addr;
unsigned long bindaddr = inaddr_none;
#ifdef win32
wsadata wsadata;
wsastartup(makeword(2, 2), &wsadata);
#endif
//bzero(&udpsvr_addr, sizeof(udpsvr_addr));
memset(&udpsvr_addr, 0, sizeof(udpsvr_addr));
udpsvr_addr.sin_family = af_inet;
udpsvr_addr.sin_port = htons(port);
bindaddr = ((null == srcaddr) ? htonl(inaddr_any) : inet_addr(srcaddr));
#ifdef win32
udpsvr_addr.sin_addr.s_un.s_addr = bindaddr;
#else //defined(linux)
udpsvr_addr.sin_addr.s_addr = bindaddr;
#endif
if ((usock = socket(af_inet, sock_dgram, 0)) <= 0)
if (bind(usock, (struct sockaddr *)&udpsvr_addr, sizeof(udpsvr_addr)) < 0)
return usock;
Socket函式引數說明轉
socket函式引數說明 1 wsastartup函式 用於初始化winsock 宣告 intwsastarup word wversionrequested,lpwsadata lpwsadata 引數 wversionrequested 要求使用winsock的最低版本號 lpwsadata w...
8 函式及引數
一.函式 1.含義 包裹一部分 實現某乙個功能 達成某乙個目的 2.特點 可以反覆呼叫,提高 的復用性,提高開發效率,便於維護管理 3.函式的格式 定義函式 def 函式名 code 呼叫函式 函式名 4.函式的命名 命名規則與變數一樣 字母數字下劃線,首字元不能用數字 嚴格區分大小寫,且不能用關鍵...
Python 函式及引數
函式引數定義的順序必須是 必選引數 預設引數 可變引數 命名關鍵字引數和關鍵字引數。使用遞迴函式需要注意防止棧溢位。在計算機中,函式呼叫是通過棧 stack 這種資料結構實現的,每當進入乙個函式呼叫,棧就會加一層棧幀,每當函式返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以,遞迴呼叫的次數過多,...