VC 命名管道如何局域网通信
RT,本地可以实现服务端与客户端的通信,但局域网却无法实现服务端管道的创建代码:SECURITY_ATTRIBUTESsa;SECURITY_DESCRIPTORsd;i...
RT,本地可以实现服务端与客户端的通信,但局域网却无法实现
服务端管道的创建代码:
SECURITY_ATTRIBUTES sa;
SECURITY_DESCRIPTOR sd;
if( InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION) )
{
if (SetSecurityDescriptorDacl(&sd, TRUE, (PACL) NULL, FALSE))
{
sa.nLength = sizeof(sa);
sa.lpSecurityDescriptor =&sd;
sa.bInheritHandle = TRUE;
hPipe=CreateNamedPipe("\\\\.\\pipe\\MyPipe",PIPE_ACCESS_DUPLEX|FILE_FLAG_OVERLAPPED,
0,2,1024,1024,0,&sa);
}
}
服务端:
if(!WaitNamedPipe("\\\\RONG-PC\\pipe\\MyPipe",NMPWAIT_WAIT_FOREVER))
{
MessageBox("当前没有可以利用的命名管道!");
return ;
}
hPipe=CreateFile("\\\\.\\pipe\\MyPipe",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
//RONG-PC是我的主机名字,我把客户端放在局域网内的其他电脑上,但就是无法连通
写错了,后面那个是客户端 WaitNamedPipe("\\\\RONG-PC\\pipe\\MyPipe",NMPWAIT_WAIT_FOREVER) 展开
服务端管道的创建代码:
SECURITY_ATTRIBUTES sa;
SECURITY_DESCRIPTOR sd;
if( InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION) )
{
if (SetSecurityDescriptorDacl(&sd, TRUE, (PACL) NULL, FALSE))
{
sa.nLength = sizeof(sa);
sa.lpSecurityDescriptor =&sd;
sa.bInheritHandle = TRUE;
hPipe=CreateNamedPipe("\\\\.\\pipe\\MyPipe",PIPE_ACCESS_DUPLEX|FILE_FLAG_OVERLAPPED,
0,2,1024,1024,0,&sa);
}
}
服务端:
if(!WaitNamedPipe("\\\\RONG-PC\\pipe\\MyPipe",NMPWAIT_WAIT_FOREVER))
{
MessageBox("当前没有可以利用的命名管道!");
return ;
}
hPipe=CreateFile("\\\\.\\pipe\\MyPipe",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
//RONG-PC是我的主机名字,我把客户端放在局域网内的其他电脑上,但就是无法连通
写错了,后面那个是客户端 WaitNamedPipe("\\\\RONG-PC\\pipe\\MyPipe",NMPWAIT_WAIT_FOREVER) 展开
3个回答
展开全部
本地套接字链接如果正确的话,两台主机之间通信就不应该有问题,如果通信不成功,现考虑一下防火墙。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
深圳市睿讯世纪科技有限公司
2023-08-24 广告
2023-08-24 广告
作为深圳市睿讯世纪科技有限公司的工作人员,我认为选择数字KVM切换器需要考虑多个因素,包括切换器性能、连接方式、传输距离、扩展能力、操作便利性等。我们公司自主研发的睿讯数字KVM切换器具有高性能、多通道、长距离传输、多屏显示、多种连接方式等...
点击进入详情页
本回答由深圳市睿讯世纪科技有限公司提供
展开全部
标志一下,等答案来学习一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Q我,告诉你答案.....
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询