C Socket程式設計之小試牛刀

2021-07-12 01:04:33 字數 1546 閱讀 3998

名義上學了c++已經1年多了,從底層api玩起到高層mfc的使用,基於cocos2d-x遊戲引擎也算是開發過幾款端遊和一些手遊了。不過那段時間做的都是單機遊戲,對於c++網路這塊幾乎沒有接觸過,今天突然有此想法,就利用一點時間玩了下socket程式設計,做了個建議的單向聊天demo。

先來個效果圖,介面確實醜,關鍵看內涵~

-客戶端方面的幾個步驟

1.先啟動winsock

//啟動winsock  

wsadata wsadata;

ierrmsg = wsastartup(makeword(1,1),&wsadata);

2.構造socket

其中af_inet指ipv4網路協議的套接字型別,af_inet6是ipv6的

m_sock =socket(af_inet,sock_stream,ipproto_tcp);
3.配置資料(位址和埠)

//目標伺服器資料  

sockaddr_in sockaddrserver;

sockaddrserver.sin_family = af_inet;

sockaddrserver.sin_port = port;

sockaddrserver.sin_addr.s_addr = inet_addr(address);

4.連線伺服器

//連線,sock與目標伺服器連線  

ierrmsg = connect(m_sock,(sockaddr*)&sockaddrserver,sizeof(sockaddrserver));

-服務端:服務端前3步和客戶端一致,只是第4步需要調正為如下操作:

繫結監聽操作:

//繫結  

ierrormsg = bind(m_sock,(sockaddr*)&serveraddr,sizeof(serveraddr));

-資料的傳送與接收資料的傳送

//傳送訊息,指定sock傳送訊息  

ierrmsg = send(m_sock,msg,len

,0);

資料的接收

//接收資訊  

newsocket = accept(m_sock,(sockaddr*)&tcpaddr,&len);

上面就是今天做了的簡單回顧,剛開始寫寫這些部落格,簡單記錄下最近學的,寫得有點亂,希望自己能慢慢進步。下次再結合多執行緒做乙個類qq的聊天小軟體來玩玩,鞏固下c++知識。

python TCP程式設計小試牛刀

學習自廖雪峰的python教程,也是參照著他的教程敲的。這個例子是乙個tcp客戶端python程式設計的例子,1 首先建立乙個tcp的socket 2 然後呼叫socket的方法與伺服器進行連線 3 連線之後給伺服器傳送一條http請求 4 接收伺服器返回的http響應 包括包頭和html資料 5 ...

boost graph lib 小試牛刀

最近要做社會網路的社群發現,發現用bgl能減少不少 量。經過一番調研發現bgl封裝的很牛叉,dijkstra等演算法統統具備,奈何自己對泛型程式設計不太熟,遇到問題還是很糾結。primer泛型程式設計 演算法部分和stl原始碼分析接下來有時間一定要讀下。下面僅以鄰接鍊錶和自定義節點為例 typede...

Anti Debug 小試牛刀

本文整理了日常生活中遇到的一些anti debug技術,除非特殊說明,均適用於mac ios開發 作為第一篇正式博文,會不定期更新,謝謝大家.123 4567 89 define pt deny attach 31 include intmain 程式正常執行,會輸出hello 但是程式載入到gdb...