在這幾個月中閱讀和編寫了大量的套接字程序,所以對套接字 程序的編寫也有了新的認識 。現在這裏分享出來與大家交流一下,不足之處還望大家指正。
這裏的示例程序是修改自 Winsocket入門教程一:多線程阻塞式服務器和阻塞式客戶端程序(TCP) 中的客戶端程序。相對於原來的程序,主要進行了以下幾個方面的處理:
1.添加了更好的錯誤處理代碼。使用GOTO語句將錯誤處理放到一起,可以使錯誤處理的代碼更利於維護,並且減少代碼的重複(Code duplicate)
2.使用微軟推薦的函數getaddrinfo函數獲取連接地址,不過冒似使用這種方法要寫的代碼更多。
3.發送和接收時使用循環發送和接收,以處理一次髮送或者接收不完的情況。
示例代碼如下