基於UDP的網路通訊程式

2021-06-15 22:49:16 字數 1182 閱讀 7393

我們知道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...