資源簡介
基于websocket協議 c++語言寫的客戶端
適合入門者學習
代碼片段和文件信息
#include?“client.h“
?
DWORD?WINAPI?SendMessageThread(LPVOID?IpParameter)
{
????while?(1)?{
????????string?talk;
????????getline(cin?talk);
????????//WaitForSingleobject(bufferMutex?INFINITE);?????//?P(資源未被占用)????
????????if?(“quit“?==?talk)?{
????????????talk.push_back(‘\0‘);
????????????//??????????send(sockClient?talk.c_str()?talk.size()?0);??
????????????send(sockClient?talk.c_str()?200?0);
????????????break;
????????}
????????else?{
????????????talk.append(“\n“);
????????}
????????printf(“\nI?Say:(\“quit\“to?exit):“);
????????cout?<????????//??send(sockClient?talk.c_str()?talk.size()?0);?//?發送信息??
????????int?len=send(sockClient?talk.c_str()?200?0);?//?發送信息??
????????//ReleaseSemaphore(bufferMutex?1?NULL);?????//?V(資源占用完畢)???
????}
????return?0;
}
?
DWORD?WINAPI?ReceiveMessageThread(LPVOID?IpParameter)
{
????//recv;
????inform?config_data;
????recv(sockClient?(char*)(&config_data)?500?0);
????int?IMG_WIDTH?=?config_data.width;
????int?IMG_HEIGHT?=?config_data.height;
????int?CHANNELS?=?config_data.channels;
????//int?BUFFER_SIZE?=?config_data.buffer_size;
????int?LEAST_COMMON_MULTIPLE?=?config_data.least_common_multiple;
????//send();
????send(sockClient?“1“?5?0);
?
????Mat?img(IMG_HEIGHT?IMG_WIDTH?CV_8UC1?Scalar(0));
????//待接收的圖像數據的格式結構體
????struct?recvbuf
????{
????????//char?buf[BUFFER_SIZE];
????????char?buf[100000];
????????//char?buf;
????????//int?length;
????????int?flag;
????};
????int?needRecv?=?sizeof(recvbuf);??//28804
????int?count?=?0;
????extern?int?errno;
????recvbuf?data;
????
?
????while?(1)
????{
????????for?(int?i?=?0;?i?????????{
????????????int?pos?=?0;
????????????int?len0?=?0;
?
????????????while?(pos?????????????{
????????????????len0?=?recv(sockClient?(char*)(&data)?+?pos?needRecv?-?pos?0);
????????????????//cout?<????????????????if?(len0?0)
????????????????{
????????????????????printf(“Server?Recieve?Data?Failed!\n“);
????????????????????return?-1;
????????????????}
????????????????pos?+=?len0;
????????????}
?
????????????count?=?count?+?data.flag;
?
????????????int?num1?=?IMG_HEIGHT?/?LEAST_COMMON_MULTIPLE?*?i;
????????????for?(int?j?=?0;?j?????????????{
????????????????int?num2?=?j?*?IMG_WIDTH?*?CHANNELS;
????????????????uchar*?ucdata?=?img.ptr(j?+?num1);
????????????????for?(int?k?=?0;?k?????????????????{
????????????????????ucdata[k]?=?data.buf[num2?+?k];
????????????????}
????????????}
?
????????????if?(data.flag?==?2)
????????????{
????????????????if?(count?==?LEAST_COMMON_MULTIPLE+1)
????????????????{
????????????????????imshow(“client“img);
????????????????????cvWaitKey(1);
????????????????????count?=?0;
????????????????}
????????????????else
????????????????{
????????????????????count?=?0;
????????????????????i?=?0;
????????????????}
??
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-09-07?16:51??client\
?????目錄???????????0??2018-09-03?19:38??client\.vs\
?????目錄???????????0??2018-09-03?19:38??client\.vs\client\
?????目錄???????????0??2018-09-03?19:38??client\.vs\client\v14\
?????文件???????33792??2018-09-07?16:51??client\.vs\client\v14\.suo
?????目錄???????????0??2018-09-03?19:38??client\client\
?????文件????????5359??2018-08-31?16:52??client\client\client.cpp
?????文件?????????955??2018-07-05?11:41??client\client\client.h
?????文件????????7924??2018-09-05?10:34??client\client\client.vcxproj
?????文件????????1066??2018-07-04?14:08??client\client\client.vcxproj.filters
?????目錄???????????0??2018-09-03?19:38??client\client\x64\
?????目錄???????????0??2018-09-05?10:34??client\client\x64\Debug\
?????文件?????????184??2018-09-05?10:35??client\client\x64\Debug\client.log
?????文件??????316149??2018-09-05?10:34??client\client\x64\Debug\client.obj
?????目錄???????????0??2018-09-05?10:35??client\client\x64\Debug\client.tlog\
?????文件????????1430??2018-09-05?10:34??client\client\x64\Debug\client.tlog\CL.command.1.tlog
?????文件???????38716??2018-09-05?10:34??client\client\x64\Debug\client.tlog\CL.read.1.tlog
?????文件?????????556??2018-09-05?10:34??client\client\x64\Debug\client.tlog\CL.write.1.tlog
?????文件?????????207??2018-09-05?10:35??client\client\x64\Debug\client.tlog\client.lastbuildstate
?????文件????????2704??2018-09-05?10:34??client\client\x64\Debug\client.tlog\li
?????文件????????3588??2018-09-05?10:34??client\client\x64\Debug\client.tlog\li
?????文件?????????538??2018-09-05?10:34??client\client\x64\Debug\client.tlog\li
?????文件?????1420288??2018-09-05?10:34??client\client\x64\Debug\vc140.idb
?????文件??????937984??2018-09-05?10:34??client\client\x64\Debug\vc140.pdb
?????文件????34828288??2018-09-07?16:51??client\client.VC.db
?????文件????????2059??2018-09-06?14:26??client\client.sln
?????目錄???????????0??2018-09-03?19:38??client\x64\
?????目錄???????????0??2018-09-03?19:38??client\x64\Debug\
?????文件??????111616??2018-09-05?10:34??client\x64\Debug\client.exe
?????文件??????602424??2018-09-05?10:34??client\x64\Debug\client.ilk
?????文件?????2125824??2018-09-05?10:34??client\x64\Debug\client.pdb
............此處省略1個文件信息
評論
共有 條評論