#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
hPipe=NULL;
}
Dialog::~Dialog()
{
delete ui;
if(hPipe)
CloseHandle(hPipe);
}
void Dialog::on_createPipeButton_clicked()
{
hPipe=CreateNamedPipe(TEXT("//./pipe/MyPipe"),PIPE_ACCESS_DUPLEX,0,1,0,0,1000,NULL);
if(INVALID_HANDLE_VALUE==hPipe)
{
QMessageBox::information(this,"News","Create NamedPipe failed.");
hPipe=NULL;
return;
}
printf("Server is now running ......\n");
if (ConnectNamedPipe(hPipe, NULL) == 0) // 等待客户机的连接
{
printf("ConnectNamedPipe failed!\n");
}
else
{
printf("ConnectNamedPipe success!\n");
}
}
void Dialog::on_writePipeButton_clicked()
{
char buf[]="hello,world.";
DWORD dwWrite;
if(!WriteFile(hPipe,buf,strlen(buf)+1,&dwWrite,NULL))
{
QMessageBox::information(this,"NEWS","write failed.");
return;
}
}
void Dialog::on_readPipeButton_clicked()
{
char buf[100];
DWORD dwRead;
if(!ReadFile(hPipe,buf,100,&dwRead,NULL))
{
QMessageBox::information(this,"NEWS","read data failed.");
return;
}
ui->label->setText(buf);
}