Websocket 如何将消息从客户端web发送到服务器MFC应用程序?

Websocket 如何将消息从客户端web发送到服务器MFC应用程序?,websocket,webclient,Websocket,Webclient,我的任务是创建一个与服务器mfc应用程序进行web通信的客户端。这意味着我不允许更改服务器mfc应用程序代码,但必须使web可以与该服务器mfc应用程序对话。服务器mfc应用程序使用套接字,可以与客户端mfc应用程序通信 我创建了一个客户端web可以成功连接到服务器mfc应用程序(服务器mfc应用程序接受连接),但当客户端web向服务器mfc应用程序发送消息时出现问题:服务器mfc应用程序知道客户端web发送消息,但它可以通过函数void CChatServerDlg::ReceiveData(

我的任务是创建一个与服务器mfc应用程序进行web通信的客户端。这意味着我不允许更改服务器mfc应用程序代码,但必须使web可以与该服务器mfc应用程序对话。服务器mfc应用程序使用套接字,可以与客户端mfc应用程序通信

我创建了一个客户端web可以成功连接到服务器mfc应用程序(服务器mfc应用程序接受连接),但当客户端web向服务器mfc应用程序发送消息时出现问题:服务器mfc应用程序知道客户端web发送消息,但它可以通过函数void CChatServerDlg::ReceiveData(SOCKET hSocket)获取消息(我运行调试模式服务器mfc应用程序来查看所有功能)

服务器MFC应用程序代码:

    ON_MESSAGE(MSG_ASYNC, OnAsyncSelect)
    LRESULT CChatServerDlg::OnAsyncSelect(WPARAM wParam, LPARAM lParam)
    {
        if (WSAGETSELECTERROR(lParam) != 0)
        {
        }
        else
        {
            switch(WSAGETSELECTEVENT(lParam))
            {
                case FD_READ:
                    ReceiveData(wParam);
                    break;
                case FD_ACCEPT:
                    {
                        CUserSocket *pClient = AcceptConnection();
                        if(pClient)
                        {
                            CString sReport;
                            sReport.Format(_T("Có kết nối từ IP: %s , Port: %d"),
                            pClient->GetRemoteIpAddr(),pClient->GetRemotePort());
                            m_lbStatus.AddString(sReport);
                            SendData(pClient->GetSocket(),_T("Server sẵn sàng"));
                            m_groupNewUsers.AddUser(pClient);
                        }
                    }
                    break;
                case FD_CLOSE:
                    CUserGroup *gr = m_groupList.FindGroup(wParam);
                    if (gr!=NULL)
                        gr->RemoveUser(wParam);
                    closesocket(wParam);
                    OnLbnSelchangeGrouplist();
                    m_lbStatus.AddString(_T("Đã đóng kết nối"));
                    break;
            }
        }
        return 0L;
    }
    void CChatServerDlg::ReceiveData(SOCKET hSocket)
    {
        char szBuf[MAX_LEN];
        int nByteRe = recv(hSocket, szBuf, MAX_LEN, 0);//always successful 
        // with client-mfc-app, and always unsuccessful with client-web below.
        if (nByteRe<=0) 
            return;
        wchar_t wch[MAX_LEN];
        CString s = _T("");
        MultiByteToWideChar(CP_UTF8,0,szBuf,nByteRe,wch,nByteRe/2);
        wch[nByteRe/2] = '\0';
        s += wch;
        SolveRequest(hSocket,s);
    }
消息上的
(MSG\u异步,OnAsyncSelect)
LRESULT CChatServerDlg::OnAsyncSelect(WPARAM WPARAM,LPARAM LPARAM)
{
如果(WSAGETSELECTERROR(LPRAM)!=0)
{
}
其他的
{
开关(WSAGETSELECTEVENT(LPRAM))
{
案例FD_为:
接收数据(wParam);
打破
案件受理:
{
CUserSocket*pClient=AcceptConnection();
if(pClient)
{
CString报告;
sReport.Format(_T(“Cókết nố我不能ừ IP:%s,端口:%d”),
pClient->GetRemoteIpAddr(),pClient->GetRemotePort();
mlbstatus.AddString(sReport);
SendData(pClient->GetSocket(),_T(“服务器ẵ),;
m_groupNewUsers.AddUser(pClient);
}
}
打破
案例FD_关闭:
CUserGroup*gr=m_groupList.FindGroup(wParam);
如果(gr!=NULL)
gr->RemoveUser(wParam);
闭式插座(wParam);
OnLbnSelchangeGrouplist();
mĕlbStatus.AddString(ĕT(“đđóng kết nố(i);;
打破
}
}
返回0升;
}
void CChatServerDlg::ReceiveData(套接字hSocket)
{
char szBuf[MAX_LEN];
int nByteRe=recv(hSocket,szBuf,MAX_LEN,0);//始终成功
//使用客户端mfc应用程序,并且始终不成功使用下面的客户端web。
if(n字节)

请尝试使用
socket\u write($socket,$msg,$len);
而不是
socket\u sendto
来连接套接字

“它无法获取字符串”没有太多关于这个问题的信息。它得到了什么?php需要一个internethost,或者localhost,我需要在计算机上有一个页面,比如:chrome-extension://gebiheilikanaahecmhecdnfnhhekjfg/index.html
<?php
        error_reporting(E_ALL);
        $port = 2012;
        $address = "127.0.0.1";
        $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        if ($socket === false) {
            echo "socket_create() failed: reason: "
            .socket_strerror(socket_last_error())."<br/>";
        }
        $result = socket_connect($socket, $address, $port);
        if ($result === false) {
                echo "socket_connect() failed.\nReason: ($result) "
            .socket_strerror(socket_last_error($socket)) ."<br/>";
        }else{
            echo "Connecting successful."."<br/>";
        }
        $msg = "ULIST";
            $len = strlen($msg);
        $flag=0;
        socket_sendto($socket, $msg, $len, $flag, $address, $port);
        //socket_close($socket);
?>