📄 proxy.cpp
字号:
#include "proxy.h"#include <qstring.h>#include <stdlib.h>#include <unistd.h>#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <string.h>#include <errno.h>#include <signal.h>#include <qfile.h>#include <qtextview.h>#define PROXY1 "/home/yhy/proxy1"#define PROXY2 "/home/yhy/proxy2"#define PROXY3 "/home/yhy/proxy3"#define PASS "/home/yhy/pass.txt"#define SERVER "/home/yhy/server.txt"proxy::proxy(QWidget *parent,const char *name):QDialog(parent,name,TRUE){setCaption(QString::fromLocal8Bit("服务器操作")); //²Ù×÷³É¹¦setMinimumSize(250,360);setMaximumSize(250,360);mainlayout=new QGridLayout(this,9,2,8);label1=new QLabel(QString::fromLocal8Bit("输入服务器地址"),this);mainlayout->addMultiCellWidget(label1,0,0,0,1);LEdit1 = new QLineEdit( this, "LEdit1" );mainlayout->addMultiCellWidget(LEdit1,1,1,0,1);label2=new QLabel(QString::fromLocal8Bit("输入注册帐号"),this);mainlayout->addMultiCellWidget(label2,2,2,0,1);LEdit2 = new QLineEdit( this, "LEdit2" );mainlayout->addMultiCellWidget(LEdit2,3,3,0,1);label4=new QLabel(QString::fromLocal8Bit("输入网络路由"),this);mainlayout->addMultiCellWidget(label4,6,6,0,1);LEdit4 = new QLineEdit( this, "LEdit4" );mainlayout->addMultiCellWidget(LEdit4,7,7,0,1);label3=new QLabel(QString::fromLocal8Bit("输入密码"),this);mainlayout->addMultiCellWidget(label3,4,4,0,1);LEdit3 = new QLineEdit( this, "LEdit3" );mainlayout->addMultiCellWidget(LEdit3,5,5,0,1);queding=new QPushButton(QString::fromLocal8Bit("确定"),this);//È·¶¨mainlayout->addMultiCellWidget(queding, 8, 8, 0, 0);connect(queding,SIGNAL(clicked()),this,SLOT(add()));quxiao=new QPushButton(QString::fromLocal8Bit("退出"),this);mainlayout->addMultiCellWidget(quxiao, 8, 8, 1, 1);connect(quxiao,SIGNAL(clicked()),this,SLOT(accept()));}proxy::~proxy(){}void proxy::add(){ int fd1,fd2,fd3; printf("proxy write 000\n"); const char* str=""; QString strip = LEdit1->text(); QString tmp0,tmp; FILE *fs; const char* pass0="\n\n"; strip = LEdit1->text(); tmp = strip+tmp0.fromLocal8Bit(pass0,-1); pass0 = tmp.ascii(); printf("%s",pass0); if((fs=fopen(SERVER,"w"))==NULL) printf("Write open file SERVER error!\n"); else { rewind(fs); fputs(pass0,fs); printf("write file sucess!\n"); } fclose(fs); str = "sip:"; tmp = tmp0.fromLocal8Bit(str,-1)+strip; str = tmp.ascii(); printf("write %d\n",strlen(str)); if((fd1=open(PROXY1,O_WRONLY|O_NONBLOCK,0))<0) { perror("write open proxy1 error\n"); exit(0); } printf("proxy write 001\n"); if(write(fd1,str,strlen(str))<0) { perror("write error\n"); exit(0); } printf("proxy write 002\n"); usleep(300000); printf("1sleep 200ms\n"); strip=LEdit2->text(); QString str1="sip:"; QString str2="@"; QString str3=LEdit1->text(); QString tmp1; tmp = tmp0.fromLocal8Bit(str1,-1)+strip+tmp1.fromLocal8Bit(str2,-1)+str3; str = tmp.ascii(); printf("write %d\n",strlen(str)); if((fd2=open(PROXY2,O_WRONLY|O_NONBLOCK,0))<0) { perror("write open proxy2 error\n"); exit(0); } printf("proxy write 003\n"); if(write(fd2,str,strlen(str))<0) { perror("write error\n"); exit(0); } printf("proxy write 004\n"); QString route=LEdit4->text(); printf("write1 %d\n",strlen(route)); if(strlen(route)==0) { route="000"; } printf("write2 %d\n",strlen(route)); usleep(200000); printf("2sleep 200ms\n"); if((fd3=open(PROXY3,O_WRONLY|O_NONBLOCK,0))<0) { perror("write open proxy3 error\n"); exit(0); } printf("proxy write 005\n"); if(write(fd3,str,strlen(route))<0) { perror("write error\n"); exit(0); } printf("proxy write 006\n"); const char* pass="\n\n"; strip = LEdit3->text(); tmp = strip+tmp0.fromLocal8Bit(pass,-1); pass = tmp.ascii(); printf("%s",pass); FILE *fp; if((fp=fopen(PASS,"w"))==NULL) printf("Write open file PASS error!\n"); else { rewind(fp); fputs(pass,fp); printf("write file sucess!\n"); } fclose(fp); printf("close fifo sucess!\n");}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -