15,471
社区成员
发帖
与我相关
我的任务
分享
// 互斥信号量
HANDLE hMutex = NULL;
typedef int(*PFunSend)( SOCKET, const char FAR *, int , int); // send 函数指针
PFunSend pSend;
int MySend( SOCKET s, const char FAR *buf, int len, int flags )
{
// 进入缓冲区
WaitForSingleObject( hMutex, INFINITE );
// 改回源地址地址
int nTmp = 0;
for(nTmp = 0; nTmp < nSize; nTmp ++)
pFuncAddr[nTmp] = uszBuf[nTmp];
// 调用原函数
pSend = (PFunSend)pFuncAddr;
nTmp = pSend(s, buf, len, flags );
// 改成本地地址
pFuncAddr[0] = 0xE9;
*(PDWORD)&pFuncAddr[1] = dwSrcOffset;
ReleaseMutex(hMutex);
return nTmp;
}