当前位置:  技术问答>linux和unix

socket传送文件问题

    来源: 互联网  发布时间:2016-12-24

    本文导语:  说下情况 发送文件  while(sendfd=fread(ch,sizeof(char),256,fp)>0)         {                 send(sockfd,ch,sendfd,0);         }         fclose(fp);         close(sockfd);  接收并写入文件 do{              ...

说下情况
发送文件 

while(sendfd=fread(ch,sizeof(char),256,fp)>0)
        {
                send(sockfd,ch,sendfd,0);
        }
        fclose(fp);
        close(sockfd); 


接收并写入文件
do{
                if((recvfd=recv(acceptfd,ch,256,0))==-1)
                {
                        printf("error in recv.n";
                        break;
                }

                fwrite(ch,1,sizeof(ch),fp);
                
        }while(recvfd > 0);

不明白接收回来后为什么会有乱码现象,还有这个nonel是什么意思




如下:
/usr/zhao1/file/ftp.sh 1>/usr/zhao1/file/filename.txt 2>&1

cat /usr/zhao1/file/filename.txt |ftp -n
mv /usr/zhao1/*.dmp /usr/zhao1/mas.exp
rm /usr/zhao1/file/filename.txt
下面跟乱码
"copy_file.txt" [noeol] 6L, 256C

|
你可以看一下recv的返回值是什么意思,然后测试下是不是捏fwrite的sizeof(ch)参数是不是有问题。

|
recv 如果成功返回的是读取的字节数,如果没有读取到你的缓冲区的长度那么长的数据,你必须判读一下,然后fwrite的时候才不会出错,不然如果只读取了20个字节的数据 你却fwrite了256个数据的话,程序就会有问题

|
fread,fwrite这两个C函数,会用到自己的缓存机制。
而它的缓存机制和send,recv,混合使用,问题很多。
用read和write吧,或者禁用缓存机制。

|
fwrite(ch,1,sizeof(ch),fp);
有问题。应该写入读取的字节数。

    
 
 

您可能感兴趣的文章:

  • 在Linux下用socket编程能直接传送结构体吗
  • socket传送文件 客户端收到的文件和服务器端发送的不一样?
  • socket传送的内容过长时,怎么处理?我就80分了!
  • 关于SOCKET连接传送数据丢失的问题
  • 求linux下socket编程(tcp)实现文件传送的源程序
  • php与flash as3 socket通信传送文件实现代码
  • socket传送文件,丢失数据???
  • 关于 UDP Sockets 实现IP多点传送
  • 谁有一个用c的socket传送特殊格式数据包的例子?具体格式如下:
  • 如何用socket一次传输多个文件,如何确定文件一个文件结束
  • 关于文件操作和Socket网络编程!
  • Linux下怎么用socket接收zip文件流?怎么把zip文件读成流?
  • liunx下面包含socket头文件了,close时提示尚未声明???
  • 初来者,试问winsock改造成gcc socket需要什么头文件?
  • socket程序中,查看error需要什么头文件?
  • socket实现多文件并发传输,求助多线程实现问题?
  • [高分相送200] 谁有linux下socket编写的发送文件源代码?(解决另开贴)
  • 内核源文件/net/socket.c中调用其他模块的函数,该如何实现
  • socket传输二进制文件输出是不是要用DataOutputStream?
  • socket编程为什么.cpp文件编辑通不过
  • 请教linux下c用下载FTP站点中文件的socket程序思路
  • 请问一下,有谁知道linux源代码中socket(int domain, int type, int protocol);函数的定义是在哪个文件中啊?小弟我找了很久,都没找到,谢谢哈。
  • hpunix gcc 包含socket.h 文件报错
  • 如何利用socket传文件(不同格式的)?高分求救!!---在线等待
  • 一个简单的SOCKET服务端程序,生成执行文件的出错!
  • 包含了头文件sys/socket.h等,编译链接的时候却报错,是什么问题呢
  • gcc编译socket小程序成功,但生成的文件却无法执行
  • 高分求救:SOL_SOCKET,SO_RCVTIMO,SO_SNDTIMEO,IPPOTO_TCP,TCP_NODELAY这些是在哪个头文件定义的呢?
  • close掉socket后,在accept了1024次后,出现打开文件最大限制1024的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux socket问题。。怎样获得已帮定特定port的一个套接字socket
  • 关于socket概念的理解问题!
  • socket编程 中的bind问题
  • 你是否可以回答Socket的问题?数据先后问题
  • 多进程socket编程问题
  • Socket的问题
  • socket accept问题,大家指教。
  • socket客户端程序的问题
  • 关于多网口socket通信的简单问题
  • fgets用在SOCKET流上的问题
  • linux socket fd 写阻塞问题
  • linux下用socket实现多进程间通信问题?
  • 请教:多线程使用同一个socket进行数据收发会出现什么问题?
  • sco unix下socket编程的问题,请大家帮忙
  • 请问socket方面的问题
  • socket编程中的问题,请各位大侠指教!
  • 急!!请教关于linux socket编程的一个问题!!
  • socket编程,使用recvfrom()函数监听问题。
  • linux下socket编程问题!
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • socket 通讯开发包 Simple Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • C++ Socket 库 C++ Sockets
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • vc做的的socket应用和unix下socket?
  • java命名空间java.net类socket的类成员方法: getreceivebuffersize定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3