TCP和UDP套接字編程基本流程

本博客已遷往http://coredumper.cn


TCP套接字編程


服務器:
1.創建套接字描述符(socket)
2.設置服務器的IP地址和端口號(需要轉換爲網絡字節序的格式)
3.將套接字描述符綁定到服務器地址(bind)
4.將套接字描述符設置爲監聽套接字描述符(listen),等待來自客戶端的連接請求,監聽套接字維護未完成連接隊列和已完成連接隊列
5.從已完成連接隊列中取得隊首項,返回新的已連接套接字描述符(accept),如果已完成連接隊列爲空,則會阻塞
6.從已連接套接字描述符讀取來自客戶端的請求(read)
7.向已連接套接字描述符寫入應答(write)
8.關閉已連接套接字描述符(close),回到第5步等待下一個客戶端的連接請求

客戶端:
1.創建套接字描述符(socket)
2.設置服務器的IP地址和端口號(需要轉換爲網絡字節序的格式)
3.請求建立到服務器的TCP連接並阻塞,直到連接成功建立(connect)
4.向套接字描述符寫入請求(write)
5.從套接字描述符讀取來自服務器的應答(read)
6.關閉套接字描述符(close)



UDP套接字編程

服務器:
1.創建套接字描述符(socket)
2.設置服務器的IP地址和端口號(需要轉換爲網絡字節序的格式)
3.將套接字描述符綁定到服務器地址(bind)
4.從套接字描述符讀取來自客戶端的請求並取得客戶端的地址(recvfrom)
5.向套接字描述符寫入應答併發送給客戶端(sendto)
6.回到第4步等待讀取下一個來自客戶端的請求

客戶端:
1.創建套接字描述符(socket)
2.設置服務器的IP地址和端口號(需要轉換爲網絡字節序的格式)
3.向套接字描述符寫入請求併發送給服務器(sendto)
4.從套接字描述符讀取來自服務器的應答(recvfrom)
5.關閉套接字描述符(close)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章