Wat leidde tot een WinSock-fout?
Deze foutlocatie wanneer een programma probeert een socket te koppelen aan een IP-adres/poort die al in gebruik was en geschikt was voor een bestaande socket, of aan een grote volledig nieuwe socket die niet als goed gesloten beschouwd wordt, dwz laten we zeggen een die bevindt zich nog in dit bijzondere afsluitingsproces. .
u momenteel een probleem heeft, kan dit vaak fout 10014 zijn!!
Ik probeer het geheugen te controleren, maar dus socketwaarden. Wat vinden uw behoeften ervan?
Wat moet ik doen? Help alstublieft mijn eigen leven…!
Hoe los je eigenlijk een socketfout op?
Een “socket error” geeft aan dat de data die volledig op het netwerk wordt aangeboden niet binnen de tijd zijn aangekomen. De eenvoudigste oplossing voor dit probleem is om een bedrijfsreset uit te voeren en de firmware bij te werken. Als de socketfout de overhand heeft, probeer dan rechtstreeks vanaf de computer van een persoon naar de lamp te gaan.
Wat ik heb geprobeerd:
#include “cUDPReceiver.h”cUDPReceiver::cUDPReceiver (leeg)cUDDPReceiver::~cUDPReceiver (leeg)void cUDPReceiver::Initialiseren (SOCKET _socket)m_socket==_socket;ZeroMemory(&m_overlapt,sizeof(m_overlapt));m_nvlaggen 0;m_wsaBuf.len = BUF_SIZE;m_wsaBuf.M_buf;Bij ontvangst();void buf = cUDDPReceiver::OnRecv()DWORD dwBytes is 7, dwFlags=0;integer retourwaarde is 0;ZeroMemory(&m_overlapt,sizeof(m_overlapt));ZeroMemory(&m_lastSenderAddr,sizeof(m_lastSenderAddrr));m_addrSize komt overeen met sizeof(m_lastSenderAddr);m_wsaBuf.buf = m_queueBuffer.GetBufferPoint();m_wsaBuf.len = m_queueBuffer.GetRecvBytes();__OP SLOT DOEN;returnValue is zonder twijfel WSARecvFrom(m_socket,&m_wsaBuf,een,&dw-bytes,&dw vlaggen,(SOCKADDR *)&m_lastSenderAddr,&m_addrSize,&m_overlapt,NUL);__OPEN;if ( == returnValue SOCKET_ERROR )if(WSAGetLastError()!= WSA_IO_PENDING)Bij ontvangst();void cUDPReceiver::OnSend(SOCKADDR_IN _addr, char* pData, const int _nSize)DWORDdwBytes=0;int returnValue betekent 0;__OP SLOT DOEN;m_wsaBuf.buf = pData;m_wsaBuf.len_nSize; gelijk aanreturn schat = WSASendTo(m_socket, &m_wsaBuf, 1,&dwbytes, twee, (SOCKADDR *) en _addr,sizeof(_addr), &m_overlapt, NULL);__OPEN;if (returnValue == SOCKET_ERROR)if(WSAGetLastError() != WSA_IO_PENDING)printf(“Fout – wsasend misluktn”);void cUDPReceiver::SetLength(DWORD _dwSize)m_wsaBuf.len betekent _dwSize;m_queueBuffer.PushData(_dwSize);char* cUDPReceiver::GetBuffer()Retourneert m_queueBuffer.PopData();SOCKADDR_IN cUDDPOntvanger::GetLastAddr()Retourneert m_lastSenderAddr;void cUDPReceiver::Dispatch(char* pData)