日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

socket网络编程流程

發布時間:2023/12/10 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 socket网络编程流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

服務器端編程的步驟:

1:創建套接字 int socket(int domain,int type,int protocol);

? ? domain告訴系統使用哪個底層協議組,PF_INET或者PF_INET6,對于本地域協議設置為PF_UNIX;

? type指定服務類型,流式SOCK_STREAM,數據報SOCK_DGRAM;

protocol一般設置為0

成功返回一個文件描述符,失敗返回-1

2:命名套接字 ,綁定套接字到一個IP地址和一個端口上? int bind(int sockfd,const struct sockaddr*my_addr,socklen_t addrlen)

? bind將my_addr所指的地址分配給sockfd,第三個參數指出地址的長度,成功返回0,失敗返回-1

3:將套接字設置為監聽模式等待連接請求 int listen(int sockfd,int backlog);

? backlog指定內核已完成三次握手連接的socket隊列最大長度,如果超過backlog,服務器不再處理新的客戶連接

??

4:請求到來后,接受連接請求,返回一個新的對應于此次連接的套接字?

? ?int accept(int socket,struct sockaddr *addr,socklen_t *addrlen)

第二個參數用來獲取被接受連接的遠端socket地址,地址長度由第三個參數指出,成功返回一個新的連接套接字

只負責從監聽隊列取出套接字,而不論連接處于何種狀態,也不關心網絡狀況

5:用返回的套接字和客戶端進行通信(send()/recv());

6:返回,等待另一連接請求;

7:關閉套接字close

客戶端編程的步驟:

1:創建套接字socket()

2:向服務器發出連接請求(connect());

? int connect(int sockfd,const struct sockaddr *serv_addr,socklen_t addrlen)

? 第二個參數是服務器監聽的socket地址

3:和服務器端進行通信(send()/recv());

4:關閉套接字,關閉加載的套接字庫close

總結

以上是生活随笔為你收集整理的socket网络编程流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。