MCPcopy Create free account
hub / github.com/EmmyLua/EmmyLuaDebugger / ReceiveLog

Function ReceiveLog

emmy_tool/src/windows/utility.cpp:387–430  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

385
386
387void ReceiveLog(DWORD processId) {
388 int debugPort = processId;
389 // 1024 - 65535
390 while (debugPort > 0xffff) debugPort -= 0xffff;
391 while (debugPort < 0x400) debugPort += 0x400;
392 debugPort++;
393
394 // 开始连接 debug session
395 // 开一个网络连接
396 WORD version MAKEWORD(2, 2);
397 WSADATA data;
398 WSAStartup(version, &data);
399
400 sockaddr_in serverAddress;
401 SOCKET hSocket = NULL;
402
403 hSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
404 if (hSocket == INVALID_SOCKET) {
405 return;
406 }
407
408 memset(&serverAddress, 0, sizeof(serverAddress));
409 serverAddress.sin_family = AF_INET;
410 serverAddress.sin_addr.s_addr = inet_addr("127.0.0.1");
411 serverAddress.sin_port = htons((short) debugPort);
412
413 if (SOCKET_ERROR == connect(hSocket, (sockaddr *) &serverAddress, sizeof(serverAddress))) {
414 closesocket(hSocket);
415 DWORD error = WSAGetLastError();
416 printf("tcp connect error, err code=%d", error);
417 return;
418 }
419
420 char receiveBuf[10240] = {0};
421
422 while (true) {
423 int receiveSize = ::recv(hSocket, receiveBuf, sizeof(receiveBuf), 0);
424 if (receiveSize <= 0) {
425 break;
426 }
427
428 fwrite(receiveBuf, sizeof(char), receiveSize, stdout);
429 }
430}

Callers 1

ReceiveLogMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected