⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 主函数.cpp

📁 这是操作系统的上机资料,关于通信和动态连接库的部分.
💻 CPP
字号:


#include "stdafx.h"
#include "stdio.h"

extern "C" __declspec(dllexport) void chuansong(HANDLE hPipeHandle1);
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

//CWinApp theApp;

//using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
	int nRetCode = 0;
	int err;
	BOOL rc;
	HANDLE hPipeHandle1;

	char lpName[]="\\\\.\\pipe\\myPipe";
	char InBuffer[50]="";
    char OutBuffer[50]=""; 



	hPipeHandle1=CreateNamedPipe(
		(LPCTSTR)lpName,
	PIPE_ACCESS_DUPLEX,                 
		PIPE_TYPE_MESSAGE,
		5,50,50, NMPWAIT_USE_DEFAULT_WAIT,
		(LPSECURITY_ATTRIBUTES)NULL
		);

	if ((hPipeHandle1==INVALID_HANDLE_VALUE) || (hPipeHandle1==NULL))//管道创建失败	
	{	err=GetLastError();
		printf("Server Pipe Create Fail! err=%d\n",err);
		exit(1);
	}
	else printf("Server Pipe Create Success! \n");

	while (1)
	{
		rc=ConnectNamedPipe(hPipeHandle1,(LPOVERLAPPED)NULL);
		if (rc==0)
		{
			err=GetLastError();
			printf("Server Pipe Connect Fail err=%d\n",err);
			exit(2);
		}		
		else printf("Server Pipe Connect Success\n");
		

		strcpy(InBuffer,"");//清空
		strcpy(OutBuffer,"");
printf("handlein main :%d\n",hPipeHandle1);
 chuansong((HANDLE)hPipeHandle1);
//printf("客户方发送的消息为:%s\n",InBuffer);
//printf("客户方发送的消息为:%s\n",OutBuffer);
/*int BytesRead,BytesWrite;
BytesRead=sizeof(InBuffer);
BytesWrite=sizeof(OutBuffer);
rc=ReadFile(hPipeHandle1,InBuffer,sizeof(InBuffer),&BytesRead,(LPOVERLAPPED)NULL);//从管道中读取数据


		if (rc==0 && BytesRead==0 ) 
		{	err=GetLastError();
		printf("Server Read Pipe Fail!err=%d\n",err);
			exit(3);
		}
		else 
		{
			printf("Server Read Pipe Success!\n");
			printf("客户方发送的消息为:%s\n",InBuffer);
	}

		rc=strcmp(InBuffer,"end");
		if (rc==0)	break; 	

	strcpy(OutBuffer,"信息已收到!");
		rc=WriteFile(hPipeHandle1,OutBuffer,sizeof(OutBuffer),&BytesWrite,(LPOVERLAPPED)NULL);

		if (rc==0) printf("Server Write Pipe Fail!\n");
		else printf("Server Write Pipe Success!\n");
DisconnectNamedPipe(hPipeHandle1);
		rc=strcmp(OutBuffer,"end");
		if (rc==0)	break; 	
*/
 	}

	printf("Now Server be END!\n");
	CloseHandle(hPipeHandle1);
	return nRetCode; 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -