• 大小: 13.61MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-30
  • 语言: C/C++
  • 标签: websocket  客户端  

资源简介

基于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 << talk;
        //  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 < LEAST_COMMON_MULTIPLE; i++)
        {
            int pos = 0;
            int len0 = 0;
 
            while (pos < needRecv)
            {
                len0 = recv(sockClient (char*)(&data) + pos needRecv - pos 0);
                //cout << len0 << endl;
                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 < IMG_HEIGHT / LEAST_COMMON_MULTIPLE; j++)
            {
                int num2 = j * IMG_WIDTH * CHANNELS;
                uchar* ucdata = img.ptr(j + num1);
                for (int k = 0; k < IMG_WIDTH * CHANNELS; 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\link.command.1.tlog
     文件        3588  2018-09-05 10:34  client\client\x64\Debug\client.tlog\link.read.1.tlog
     文件         538  2018-09-05 10:34  client\client\x64\Debug\client.tlog\link.write.1.tlog
     文件     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个文件信息

评论

共有 条评论