我們知道tcp/ip協議是至今發展最為成功的協議之一,也是整個網際網路的基礎。它在傳輸層有兩個不同的協議:tcp和udp,用途都很廣泛,下面我就udp做乙個示例程式。整個例子有兩個程式組成,乙個傳送資料,另乙個程式接收資料後,完成繪圖工作。
本文程式執行效果圖如下:
一、傳送程式
首先建立資料傳送程式(fason)。一共傳送四個資料:圓心的x座標、圓心的y座標、圓半徑r、圓的顏色。它的實現主要如下:
void cfasondlg::onsend()
傳送資料時有乙個技巧,就是所有資料放在乙個結構體中來傳送,不用乙個乙個傳送。但是不能在結構體中包含cstring等可以變長的資料型別。
二、接收程式
下面我們看一下接收資料端的程式(jieshou)。如下:
void cdasocket::onreceive(int nerrorcode)
else
m_pdoc->resscessding(buff);
class casyncsocket::onreceive(nerrorcode);
}三、資料處理與顯示
我們設計程式時,資料通常在文件中處理,顯示工作在檢視中完成。當整個程式較小時,這感覺不到有何好處,但整個程式較大時,程式的條理就會較清晰,易讀性好。所以一定要時時養成良好的設計習慣。資料在文件中處理如下:
void cjieshoudoc:resscessding(char* lbuff)
在檢視中的顯示如下:
void cjieshouview::ondraw(cdc* pdc)
{cjieshoudoc* pdoc = getdocument();
assert_valid(pdoc);
x=pdoc->p.x;
y=pdoc->p.y;
r=pdoc->p.r;
if(pdoc->p.color==1)
pdc->selectobject(new cbrush(rgb(255,0,0)));
if(pdoc->p.color==2)
pdc->selectobject(new cbrush(rgb(0,255,0)));
if(pdoc->p.color==3)
pdc->selectobject(new cbrush(rgb(0,0,255)));
pdc->ellipse(x-r,y-r,x+r,y+r);
基於UDP的多執行緒網路通訊程式
分享一段基於udp的多執行緒網路點對點通訊程式。檔案一 ccomm.h ifndef ccomm h define ccomm h include include include include define socklen t int pragma comment lib,wsock32.lib ...
網路通訊UDP
udp 前面已經講過tcp網路通訊,然後tcp每次通訊都要進行三次握手連線,雖然傳輸的可靠性比較高,但對於一些及時性的資料的傳輸顯得太過費時,所以就有了udp這種無連線通訊,但資料容易出錯。那些函式我這裡就不講了,直接看我上乙個部落格就行,我這裡直接附例子了。udpserver.c include ...
udp網路通訊
建立套接字 傳送 接收 資料 關閉套接字 伺服器需要通過bind固定本機ip和port import socket 1.建立udp套接字 udp socket socket.socket socket.af inet,socket.sock dgram 2.傳送資料 send socket.send...