社区
网络编程
帖子详情
如何和外网通信
gyrilyuuu
2011-04-20 10:59:05
最近写了一个远程控制软件,我在A地和本地做了一次测试,两台电脑通过外网连接,A地电脑装了Server端,本地启动Client端,Server端绑定A地的IP地址,并且A将他的外网IP告诉了本地,我在本地设置好A地的外网地址和端口连接成功了,但是在执行命令时,却无法执行,产生的错误在屏幕上回显了,着这说明数据可以传送,我发现错误是在fopen函数中
fopen(TempFile,"w+");这个函数的返回值为NULL,请问这是为什么啊
...全文
299
6
打赏
收藏
如何和外网通信
最近写了一个远程控制软件,我在A地和本地做了一次测试,两台电脑通过外网连接,A地电脑装了Server端,本地启动Client端,Server端绑定A地的IP地址,并且A将他的外网IP告诉了本地,我在本地设置好A地的外网地址和端口连接成功了,但是在执行命令时,却无法执行,产生的错误在屏幕上回显了,着这说明数据可以传送,我发现错误是在fopen函数中 fopen(TempFile,"w+");这个函数的返回值为NULL,请问这是为什么啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gyrilyuuu
2011-04-21
打赏
举报
回复
int Read_Num;
char * CR_LF = "\r\n";
TCHAR TempPath[MAX_PATH];//系统目录
char TempFile[MAX_PATH];//临时文件
char curdir[MAX_PATH];//当前目录
CString Dir_Name = m_csRead.Mid(4,number-4);
Dir_Name.TrimLeft();
Dir_Name.TrimRight();
if(Dir_Name == "")
{
OnServerBroadcast("Sorry, No Directory to Open(没有打开目录).");
//Socket->Close();
}
GetSystemDirectory(TempPath,MAX_PATH);
sprintf(TempFile, "%s", CString(TempPath) + _T("\\bdconf.bat"));
//当前工作目录存入curdir数组
_getcwd(curdir,_MAX_PATH);
//把要列表的目录设置为当前目录
_chdir((LPCTSTR)Dir_Name);
FILE *fp = fopen(TempFile,"w+");
if(fp == NULL)
{
OnServerBroadcast("Sorry, Failure in Open Temp File(不能创建临时文件).");
//设为原来的目录
_chdir(curdir);
return;
//Socket->Close();
}
CString tempstr,tempstr1,title;
title = "文件名称 大小 时间";
fwrite(title,sizeof(char),title.GetLength(),fp);
fwrite(CR_LF,1,2,fp);
//开始查找文件
CFileFind finder;
BOOL bWorking = finder.FindFile("*.*");
while (bWorking)
{
bWorking = finder.FindNextFile();
CString filename;
if(Dir_Name.GetAt(Dir_Name.GetLength()-1) != '\\')
filename = Dir_Name + "\\" + finder.GetFileName();
else
filename = Dir_Name + finder.GetFileName();
struct _stat buf;
int result;
char buffer[] = "A line to output";
//获得文件性质
result = _stat( (LPCTSTR)filename, &buf );
if( result == -1 )
{
OnServerBroadcast("Sorry, Failure in Get File Attribs(不能获得文件性质).");
//设为原来的目录
_chdir(curdir);
return ;
}
else
{
//写入文件
fwrite(filename,sizeof(char),filename.GetLength(),fp);
fwrite(" ",1,2,fp);
tempstr.Format("%ld %s", buf.st_size,ctime( &buf.st_atime));
fwrite(" ",1,2,fp);
fwrite(tempstr,sizeof(char),tempstr.GetLength(),fp);
fwrite(CR_LF,1,2,fp);
}
}
fclose(fp);
FILE *fp1 = NULL;
fp1 = fopen(TempFile,"r");
if(fp1 == NULL)
{
OnServerBroadcast("Sorry, Failure in Open Temp File(不能创建临时文件).");
//设为原来的目录
_chdir(curdir);
return ; //Socket->Close();
}
CString Return_Text = "";
char temp_content[300];
for(int i=0;i<300;i++)
temp_content[i] = '\0';
Read_Num = fread(temp_content,1,300,fp1);
while(Read_Num == 300)
{
Return_Text = Return_Text+temp_content;
for(int i=0;i<300;i++)
temp_content[i] = '\0';
Read_Num = fread(temp_content,1,300,fp1);
}
Return_Text = Return_Text+temp_content;
fclose(fp1);
OnServerBroadcast(Return_Text);
//Socket->Close();
//设为原来的目录
_chdir(curdir);
这是程序源代码 我也不知道是什么原因 返回的错误码是不能创建临时文件 局域网内没有任何问题 一到外网就出问题了
squall_qz
2011-04-21
打赏
举报
回复
TempFile有问题吧……
quwei197874
2011-04-21
打赏
举报
回复
nat穿透
ouyh12345
2011-04-21
打赏
举报
回复
TempFile是什么路径?本地的还是远程的?
i_love_pc
2011-04-21
打赏
举报
回复
貌似有很多开源的木马,可以参考一下。
oyljerry
2011-04-21
打赏
举报
回复
fopen的文件是否有问题,获取错误信息打印,GetLastError
海思平台上USB WIFI的移植与局域网无线调试和视频流预览-第5/11季视频课程
本季课程在开发板上移植USB WIFI模块(套装附带的MT7601模块),工作在ap模式下,并且用电脑通过WIFI去连接开发板实现主机和开发板的无线网络局域网
通信
,这样就可以用WIFI网络取代板载ethernet有线网络方式来进行...
局域网与
外网
通信
原理
局域网域
外网
通信
,简单而言即通过端口映射来实现的,一台主机的数据包可以被映射到
外网
IP的不同端口,不同时段下,
外网
IP的同一端口也可能被多态主机使用 说起局域网与
外网
通信
原理,就不得不提起在学校里学到的...
lwip 中tcp能与内网
通信
,但不能和
外网
通信
的解决方法
但最近要访问到
外网
(阿里云香港)的服务器的时候,TCP一直连接不上,在经过了检查程序是否有BUG,lwip协议栈是否有问题,ip地址问题,但都没有发现问题后,笔者开始怀疑设置的MAC地址是否会有问题。 MAC地址 在...
内网和
外网
之间的
通信
对于初学者而已,我们学习的网络编程(如TCP,UDP编程),我们通常都是在局域网内进行
通信
测试,有时候我们或者会想,我们现在写的内网网络数据和
外网
的网络数据有什么不同,我们内网的数据是如何走出
外网
的呢?...
linux中网卡配置,两张网卡,分别用于内网和
外网
的
通信
一、一张网卡实现内网
通信
(不能访问
外网
): 1.首先查看已有的网卡: [root@localhost ~]# ip addr 我的默认网卡是ens33 2.VMware右下角打开设置第一张网卡ens33: 3.选择VMnet1 4.打开真机的网络连接 ...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章