最近在用qt做應用程式開發,採用udp通訊模式,部分**如下:
qudpsocket *udpsocket;
udpsocket = new qudpsocket(this);
connect(udpsocket, signal(readyread()),this, slot(readpendingdatagrams()));
void udpclient::readpendingdatagrams
()
} 複製**
該**在網路資料量不高時比如10kb/s能夠正常工作,但是當軟體系統網路資料報為30kb/s以及以上時,發現程式執行一段時間後直接報段錯誤,軟體異常時的棧呼叫如下所示:
//建立socket物件
int sockfd=socket(af_inet,sock_dgram,0);
//建立網路通訊物件
struct sockaddr_in addr;
addr.sin_family =af_inet;
addr.sin_port =htons(1333);
addr.sin_addr.s_addr=inet_addr("127.0.0.1");
//繫結socket物件與通訊鏈結
int ret =bind(sockfd,(struct sockaddr*)&addr,sizeof(addr));
if(0>ret)
struct sockaddr_in cli;
socklen_t len=sizeof(cli);
while(1)
close(sockfd);
複製**
完成後對軟體進行壓力測試,發現在大網路資料報情況下,軟體系統能夠正常執行。可見採用c的socket會比qudpsocket健壯性好。 最大網路流
求網路流有很多演算法,這幾天學習了兩種,記錄一下ek演算法。首先是網路流中的一些定義 v表示整個圖中的所有結點的集合.e表示整個圖中所有邊的集合.g v,e 表示整個圖.s表示網路的源點,t表示網路的匯點.對於每條邊 u,v 有乙個容量c u,v c u,v 0 如果c u,v 0,則表示 u,v ...
最大網路流
1 基本概念和術語 1 網路 g 是乙個簡單有向圖,g v,e v 在 v 中指定乙個頂點 s 稱為源 和另乙個頂點 t 稱為匯 有向圖 g 的每一條邊 v,w e 對應有乙個值 cap v,w 0 稱為邊的容量 這樣的有向圖 g 稱作乙個網路 2 網路流 網路上的流 是定義在網路的邊集合 e 上的...
最大網路流
圖中有兩個點源結點s和匯點t。源結點是網路流的起點,匯點是流的終點 給定乙個流網路g 乙個源結點s 乙個匯點t,找到值最大的乙個流 定義 出發點為源點,接受流量 的匯聚點為匯點,邊上的權值為可以流過的最大值 殘存網路gf 由仍可以對流量進行增加 減少的邊構成 流過的量不超過容量的邊 包含原圖中的邊,...