代码的用处:从服务器下载文件,先给服务器发送要下载的文件名,然后等待客户端发送信息是否找到这个文件

找到则发给客户段found,然后就开始接收文件,否者notfound,结束程序。

客户端代码:

环境是:Windows下QT软件,TCP协议

void file::judgeInfo()

{

QString tempname=lineEdit->text();

QByteArray tmppas = tempname.toLatin1();

char *filename = tmppas.data();

cout <

char judge[10]=”found”;

if(send(sclient,filename,1024,0)<0)  //文件名字

cout <

else

{

memset(judge,0,10);

while(1)

{

recv(sclient,judge,10,0);   //接收服务器发过来的信息,即有没有这个文件

cout<

}

cout < “<

if(strcmp(judge,”found”)==0)          //发现则进行接收服务器发过来的文件

{

downloadRoot=downloadRoot+””/””+tempname;

QByteArray tmppas1 = downloadRoot.toLatin1();

char *recvfilename = tmppas1.data();

QMessageBox::warning(this,”warning—-“,recvfilename);

thread.recvfilesThead(sclient,recvfilename);

QMessageBox::information(this,”recv ok!”,”recv ok”);

thread.terminate();

}

else

QMessageBox::warning(this,”Waring”,”未找到这个文件!”);

}

}

服务器代码:

void sendfile(MA_Cli *tempsocket,char *filename)//接收的套接字和文件的名字

{

printf(“2   %d”,tempsocket);

FILE *fd=fopen(filename,”rb”);

char buff[SENDMAXSIZE];

int read_len=0;

if(fd==NULL)       //查找是否有 文件

{

printf(“File: %s not found!\n”,filename);

send(tempsocket->MA_clientfd,”Not found !\n”,SENDMAXSIZE,0);

}

else

{

char found[]=”found”;

send(tempsocket->MA_clientfd,found,sizeof(found),0);//找到则发送found,然后就开始发送文件

memset(buff,0,SENDMAXSIZE);

while(read_len=(fread(buff,sizeof(char),SENDMAXSIZE,fd)))

{

if(send(tempsocket->MA_clientfd,buff,SENDMAXSIZE,0)<0)

{

printf(“Error failed send !\n”);

exit(1);

}

memset(buff,0,SENDMAXSIZE);

}

sleep(3);

send(tempsocket->MA_clientfd,”end”,3,0);

fclose(fd);

printf(“Transfer file finished !\n”);

}

}

出现的错误:

在客户端总是接收不到真正的found,接收输出的信息是个乱码

在服务器中,那个found一直发布过去,好像是阻塞在那里了,如果客户端关闭,found才发过去。

socket编程持续交流java_socket编程的简单问题相关推荐

  1. python 图形化socket编程_Python黑帽编程2.8 套接字编程

    Python黑帽编程2.8 套接字编程 套接字编程在本系列教程中地位并不是很突出,但是我们观察网络应用,绝大多数都是基于Socket来做的,哪怕是绝大多数的木马程序也是如此.官方关于socket编程的 ...

  2. Qt:Qt实现Winsock网络编程—非阻塞模式下的简单远程控制的开发(WSAAsyncSelect)

    Qt实现Winsock网络编程-非阻塞模式下的简单远程控制的开发(WSAAsyncSelect) 前言 这边博客应该是 Qt实现Winsock网络编程-TCP服务端和客户端通信(多线程) 的姐妹篇,上 ...

  3. 【青少年编程竞赛交流】03月份微信图文索引

    03月份微信图文索引 由于"组队学习"这个公众号的功能主要是组织Datawhale社群中的学习者们每个月的组队学习,所以,我另外新建了这个微信公众号"青少年编程竞赛交流& ...

  4. 青少年编程竞赛交流群第050次活动录播

    背景介绍 把电子学会的青少年编程能力等级测评作为游戏的关卡,带着小朋友们升级打怪,这个想法来自于 我从邵慧宁身上得到的启发. 升级打怪: 电子学会考评中心:http://www.qceit.org.c ...

  5. 青少年编程竞赛交流群第048次活动录播

    背景介绍 把电子学会的青少年编程能力等级测评作为游戏的关卡,带着小朋友们升级打怪,这个想法来自于 我从邵慧宁身上得到的启发. 升级打怪: 电子学会考评中心:http://www.qceit.org.c ...

  6. 【青少年编程竞赛交流】01月份微信图文索引

    01月份微信图文索引 由于"组队学习"这个公众号的功能主要是组织Datawhale社群中的学习者们每个月的组队学习,所以,我另外新建了这个微信公众号"青少年编程竞赛交流& ...

  7. 【青少年编程竞赛交流】02月份微信图文索引

    02月份微信图文索引 由于"组队学习"这个公众号的功能主要是组织Datawhale社群中的学习者们每个月的组队学习,所以,我另外新建了这个微信公众号"青少年编程竞赛交流& ...

  8. 【新周报(045)】青少年编程竞赛交流群周报

    「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复[Scratch]或[Python],即可进入.如果加入了之前的社群不需要重复加入. 为了完成二月份青少年编程公益训练营的活动 ...

  9. 【青少年编程竞赛交流】12月份微信图文索引

    12月份微信图文索引 由于"组队学习"这个公众号的功能主要是组织Datawhale社群中的学习者们每个月的组队学习,所以,我另外新建了这个微信公众号"青少年编程竞赛交流& ...

最新文章

  1. PowerShell2.0之桌面计算机维护(九)磁盘管理
  2. (转载)浏览器兼容性问题大汇总
  3. Pandas库DataFrame的排序
  4. 如何使用Visual Studio无需成本即可实现连续集成
  5. C++控制台打飞机小游戏 | CSDN 博文精选
  6. php 删除 session 文件,如何删除php中的session文件
  7. LeetCode - 231. Power of Two - 判断一个数是否2的n次幂 - 位运算应用实例 - ( C++ )
  8. 如何自学python-如何自学Python编程呢?老男孩Python学习方法
  9. 阿言学习之Hadoop fs常用命令
  10. 纯html 404页面,一款纯css3实现的漂亮的404页面_html/css_WEB-ITnose
  11. office 2003 兼容包 (兼容 office 2007 office 2010)
  12. java list 转json数组_list转json数组
  13. PDF虚拟打印机的输出目录在注册表里
  14. 未群发消息接腾讯服务器吗,腾讯企业QQ(协同)如何设置并群发消息?
  15. OpenSSL 使用openssl工具搭建私有CA
  16. NPOI导出数据,设置格式,锁定单元格
  17. goahead 移植
  18. 秉火429笔记之十 EXTI-外部中断/事件
  19. 将数组修改为峰谷相间
  20. css中background-size属性cover、contain、100%的含义案例详解

热门文章

  1. oracle querytimeout,聊聊pg jdbc的queryTimeout及next方法
  2. python考试pass or fail_Pytest官方教程-12-skip及xfail: 处理不能成功的测试用例
  3. mysql binary 查询_MYSQL的binary解决mysql数据大小写敏感问题 《转载》
  4. office右键菜单修复_自从有了这个工具,我的Office操作已经快到慢不下来了!
  5. 计算机能实现哪些人类智力活动,人工智能是电脑科学的一个重要分支,它的近期目标是什么?...
  6. java 线程百科_Java并发——线程介绍
  7. 舒服的网页登录界面设计灵感
  8. 留住用户的APP弹窗设计素材模板
  9. python pdf报告_python生成pdf报告、python实现html转换为pdf报告
  10. c++绘制函数图像_简洁优雅的Matplotlib可视化 | 绘制论文曲线图