編寫socket網路通訊程式的時候,在服務端用到bind函式進行繫結,寫了如下語句
if
(socket_error ==
bind
(m_listen,
(struct sockaddr*
)&sin,
sizeof
(sin)))
但是編譯的時候一直出現下面的問題:
錯誤 c2678 二進位制「==」: 沒有找到接受「int」型別的左運算元的運算子(或沒有可接受的轉換)
錯誤 e0349 沒有與這些運算元匹配的 "=="運算子
出錯原因是std庫裡面也有bind函式,由於我在開頭使用了using namespace std; 所以編譯器認為我寫的bind是std裡面的bind,因此也就會報錯。
有兩種解決方法:
在bind前面加上域操作符::, 也就是::bind,這樣就可以呼叫socket的bind了。
不要寫using namespace std; 需要用到的時候再寫std::
最後寫成下面這樣:
if
(socket_error ==
::bind
(m_listen,
(struct sockaddr*
)&sin,
sizeof
(sin)))
VS2010網路程式設計
客戶端程式 include include winsock2.h pragma comment lib,ws2 32.lib define ip str addr 127.0.0.1 define ip prot 6000 服務端埠號 define listen count max 20 服務端監聽...
VS2017中新增QWebEngineView模組
開發環境 qt 5.9.0 vs2017 vs2017 在生成新的工程時,會預設帶了一些模組。如果新增新的模組如何操作呢?目前就新增 qwebengineview 模組為例。在生成新的工程時預設帶的模組,裡面沒有qwebenginewidget模組,所以需要自己手動配置 圖一 第一步 中新增 qwe...
vs2010 網路程式設計練習
include stdafx.h include hostconfig.h include winsock2.h include include pragma comment lib,ws2 32.lib pragma comment lib,netapi32.lib ifdef debug def...