這一篇我來寫一下socket程式設計裡面比較基本的函式
socket socket(int af,int type,int protocl);
第二個引數指定socket型別 socke_stream產生流式套接字,sock_dgram產生資料報套接字
函式呼叫失敗返回invalid_socket
我有乙個疑問就是如果客戶端和服務端的socket型別不同還可不可以進行通訊,這個我過段時間試驗一下,先馬克
bind(socket s,const struct sockaddr *name,int namelen);
第乙個引數當然是待繫結的套接字啦,
第二個引數是標識繫結在哪個「地方」(sockaddr_in),服務端那個裡面ip是全0,我覺著可能是指能接受那些ip傳送的資料?
第三個引數是這個「地方」的占地大小。
這個客戶端一般是不用繫結的,使用的時候直接分配埠就好,但是服務端是需要繫結的,要不是不知道究竟訪問那個埠服務端才能收到
int wsaapi listen(socket s,int backlog);
設定socket的狀態為監聽,使客戶端程式可以進行連線
引數 backlog指定最大的連線數
socket wsaapi accept(socket s,struct sockaddr *addr,int *addrlen);
引數一是正在監聽的socket,引數二在執行之後會包含客戶端的埠ip等(sockaddr_in)
返回值是乙個新的套接字描述符,他代表的是和客戶端新的連線
在沒有連線之前程序處於阻塞狀態
int wsaapi recv(socket s,char *buf,int len,int flags);
int wsaapi send(socket s,const char *buf,int len,int flags);
這兩個socket是建立連線後生成的那個socket,注意第二個引數是char陣列而不是string
int wsaapi connect(socket s,const struct sockaddr *name,int namelen);
引數一是socket函式建立的套接字
引數二包含了所要連線的服務端的位址和埠
最基本的Socket程式設計
示例程式是同步套接字程式,功能很簡單,只是客戶端發給伺服器一條資訊,伺服器向客戶端返回一條資訊 這裡只是乙個簡單的示例,是乙個最基本的socket程式設計流程,在接下來的文章中,會依次記錄套接字的同步和非同步,以及它們的區別。下面是示例程式的簡單步驟說明 伺服器端 第一步 用指定的埠號和伺服器的ip...
最基本的Socket程式設計
示例程式是同步套接字程式,功能很簡單,只是客戶端發給伺服器一條資訊,伺服器向客戶端返回一條資訊 這裡只是乙個簡單的示例,是乙個最基本的socket程式設計流程,在接下來的文章中,會依次記錄套接字的同步和非同步,以及它們的區別。下面是示例程式的簡單步驟說明 伺服器端 第一步 用指定的埠號和伺服器的ip...
最基本的Socket程式設計
示例程式是同步套接字程式,功能很簡單,只是客戶端發給伺服器一條資訊,伺服器向客戶端返回一條資訊 這裡只是乙個簡單的示例,是乙個最基本的 socket 程式設計流程,在接下來的文章中,會依次記錄套接字的同步和非同步,以及它們的區別。下面是示例程式的簡單步驟說明 伺服器端 第一步 用指定的埠號和伺服器的...