基本套接字分為客戶機/伺服器和點對點模式。
c/s:sever/client---------------------------一般採用tcp
b/s:browser/server-----------------------一般採用udp
常用的資料結構有in_addr(儲存ip位址),sockaddr_in(表示internet協議位址結構),sockaddr(儲存主機ip位址和介面資訊)。
structin_addr s_un_b;
struct
s_un_w;
u_long s_addr;
} s_un;
}
structsockaddr_in;
struct例子:sockaddr;
in_addr test;test..s_un_b.s_b1=192
;test..s_un_b.s_b2=168
;test..s_un_b.s_b3=0
;test..s_un_b.s_b4=1;
struct常用函式sockaddr_in serveraddr;
memst(&serveraddr,0,sizeof(struct
sockaddr_in));
serveraddr.sin_family=af_inet; //
af_inet表示tcp
serveraddr.sin_port=htons(80
);serveraddr.sin_addr.s_addr=htonl(inaddr_any); //
inaddr_any表示當前所用的ip
#incldue//例子:tcp:建立套接字
socket pascal far socket(int af, int type, int
protocol)
//af指定通訊協議--af_unix,af_inet,af_ns
//type指定套接字型別,sock_stream(tcp),sock_dgram(udp),sock_ram(原始套接字)
//protocol指定特定協議
//套接字繫結
int pascal far bind(socket s, const
struct sockaddr far *name, int
namelen)
//s指定要關聯的套接字
//name指定要繫結的ip位址與埠資訊
//偵聽
int pascal far listen(socket s, int
backlog)
//backlog指定請求連線佇列的最大長度,一般設為5
//偵聽,接受資料
socket pascal far accept(socket s, struct sockaddr far* addr, int far*addrlen)
//s為當前指定的套接字
//addr為儲存當前客戶端的位址資訊
//建立連線
int pascal far connect(socket s, const
struct sockaddr far* name, int
namelen)
//tcp傳送資料
int pasacal far send(socket s, const
char far* buf, int len, int
flags);
//s指定已經連線的套接字
//buf表示待傳送資料的緩衝區
//flags用於設定傳送控制引數,一般為0
//tcp接受資料
int pasacal far recv(sockaet s,char far* buf,int len,int
flags);
//udp傳送資料
ssize_t sendto(int sockfd, const
void *buf, size_t len, int flags, const
struct sockaddr *to, socklen_t tolen)
ssize_t recvform(
int sockfd, const
void *buf, size_t len, int flags, const
struct sockaddr *from
, socklen_t fromlen)
//sockfd表示已經建立好的乙個udp套接字
用於設定接受方和傳送方的位址資訊
//tolen,fromlen用於設定位址資訊的長度
udp:
from:
Socket高階程式設計 一
套接字選項 套接字建立之後,可使用套接字選項設定套接字的屬性,以改變套接字的行為 1.setsockopt int setsockopt socket s,int level,int optname,const char optval,int optlen 函式功能 設定套接字選項 引數 第乙個引數...
LINUX程式設計 socket程式設計
什麼是套接字 套接字是一種通訊過程,它使客戶 伺服器系統的開發工作既可以在本地單機上進行,也可以跨網路進行。套接字建立過程 1,建立乙個套接字,這是分配給該伺服器程序的乙個作業系統資源,套接字由伺服器通過系統呼叫socket建立出來的,所以其它程序將不能對它進行訪問。2,給套接字起個名字,用系統呼叫...
SOCKET程式設計(LINUX)
現在的網路程式設計幾乎都是用的socket 本地的程序間通訊 ipc 有很多種方式,但可以總結為下面4類 2.我們要討論的是網路中程序之間如何通訊?在本地可以通過程序pid來唯一標識乙個程序,但是在網路中這是行不通的。三元組 ip位址,協議,埠 就可以標識網路的程序了,網路中的程序通訊就可以利用這個...