首先建立專案名為「server」和「client」的兩個對話方塊程式,然後分別進行**編寫。
(1)建立兩個csocket的派生類:
class clistensocket:public csocket //負責偵聽
class cclientsocket:public csocket //負責應答
cptrlist m_list;
(3)編寫兩個socket類中的用於通訊的虛函式:
a.clistensocket類:
#include
"sockc.h"
void csockl::onaccept(int nerrorcode)//用於截獲客戶端的連線
b.cclientsocket類:
void csockc::onreceive(int nerrorcode)//用於截獲客戶端發來的資料
csocket::onreceive(nerrorcode);
}void csockc::onclose(int nerrorcode)//用於處理客戶端斷開連線的情況
list.getnext(pos);
}//清理占用的堆空間
delete
this;
csocket::onclose(nerrorcode);
}
(4)在主對話方塊類中新增clistensocket類的成員變數,並在初始化函式中建立埠進行偵聽:
//在標頭檔案中新增變數
clistensocket m_sock;
//在初始化函式中建立、偵聽,這裡可以新增報錯提示
m_sock.create(8888);
m_sock.listen();
class
cconnectsocket:public
csocket
(3)新增虛函式onreceive,用於獲取伺服器發來的資料:
//獲取資料
char s[2048];
int nlen=receive(s,sizeof(s));
if(nlen<=0)
return;
//下面的**用於將截獲的訊息s顯示在介面中
...
(4)在主對話方塊中新增變數並修改初始化函式,新增傳送按鈕的訊息對映函式:
//在標頭檔案中新增變數
cconnectsocket m_sock;
//在初始化函式中實現連線伺服器
m_sock.create();
m_sock.connect("192.168.1.120",8888);//伺服器的ip和設定的埠號
//新增傳送按鈕的訊息響應函式
m_sock.send(sztext,sizeof(sztext));//sztext為訊息文字
先開啟伺服器,在開啟客戶端進行訊息輸入。
MFC網路程式設計(三) 一般TCP通訊
1.首先,定義需要的協議編號和資料資訊 enum struct sdata a.伺服器程式 clist m list 2 新增兩個csocket類,用於偵聽和應答 在clistensocket類中 新增虛函式onaccept用於獲得客戶端的連線 在cclientsocket類中 新增虛函式onclo...
linux網路通訊二(TCP)
tcp通訊 流程圖如下 1 建立 socket套接字 相同2 繫結 將建立的socket套接字返回的控制代碼與本機的ip 埠繫結 相同3 監聽 監聽socket include int listen int s,int backlog s 監聽的控制代碼 backlog 監聽的最大數,預設20 成功...
網路程式設計 筆記(二) 基於 Windows簡單通訊
windows套接字程式設計 1 設定庫alt f7 配置屬性 聯結器 輸入 附加依賴項 ws2 32.lib 2 標頭檔案 include 3 winsock的初始化 首先必須呼叫wsastartup函式,設定程式中用到的winsock版本,並初始化響應版本的庫。int wsastartup wo...