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

linux下使用UDP建立网络连接问题

    来源: 互联网  发布时间:2017-03-02

    本文导语:  我能不能接收的时候只接收一个字节,也就是按字节接收呢,这样我就可以很容易的使用环形buff来处理接收到的数据。但是我在使用下面的函数(将128改为1),也就是每次只接收一个字符。 recvfrom(sock,recvBuffer,128,0,(s...

我能不能接收的时候只接收一个字节,也就是按字节接收呢,这样我就可以很容易的使用环形buff来处理接收到的数据。但是我在使用下面的函数(将128改为1),也就是每次只接收一个字符。
recvfrom(sock,recvBuffer,128,0,(struct sockaddr*)&toAddr,&addrLen)
操作的时候不能达到效果。只能收到数据的第一位,后面的数据好像就不在缓冲区中了。和串口的操作不一样呀,求高手指点一下。我的程序是
while(1)
{
    recvfrom(sock_fd,&buff[count],1,0,(struct sockaddr*)&toAddr,&addrLen);
    count=(count+1)%sizeof(buff);
}

|
UDP是报文,不是字节流,TCP可以分批接受,UDP则按包接受,buffer不够就截断了再也读不到了,解释如下:

       The recvfrom() function shall return the length of the message written to the buffer pointed to by the buffer argument. For message-based sockets,  such
       as   SOCK_RAW,  SOCK_DGRAM, and SOCK_SEQPACKET, the entire message shall be read in a single operation.  If a message is too long to fit in the supplied
       buffer, and MSG_PEEK is not set in the flags argument, the excess bytes shall be discarded. For  stream-based  sockets,  such  as  SOCK_STREAM,  message
       boundaries shall be ignored.  In this case, data shall be returned to the user as soon as it becomes available, and no data shall be discarded.

|
recvfrom是不行的,你还是想别的办法吧!就算不按字节接收,也可以使用环形buffer啊!只是偏移量由1变成了包的长度。

    
 
 

您可能感兴趣的文章:

  • 在XP下使用VMWare安装了Linux AS 5.6之后,使用FTP工具可以远程连接Linux,而在cmd命令行中却连接不上,什么原因 ?
  • linux 有线连接了却显示有线连接断开是怎么回事
  • 请问unix/linux下动态连接库和静态连接库有什么区别?
  • LINUX中连接C++的库怎么连接.库在什么位置,还有什么特殊命令吗?
  • 在linux下可以使用dao方式连接数据库吗?可以连接musql吗?回答就给分!急
  • 在线请教:linux下用MySQL C API 连接MySQL 4.1.12出现的连接问题,提示升级客户端!!!!!!
  • ftp连接问题,就是linux连接windows ftp的问题,高手请进(在线等待)!!!!!
  • Linux下的C++程序怎么连接WIN2000下的SQL Server 2000?或者如何连接MySQL?
  • linux 下连接创建连接数据库程序,什么都可以 。谁知道300分
  • [疑问] [linux网络连接]Linuxmint网络连接
  • LINUX C 进行TCP网络连接,怎样设置连接超时时间?
  • 我在telnet到linux上的时候报不能打开到主机的连接, 在端口23: 连接失败 请问是什么原因
  • linux vsftpd连接问题
  • Linux 下的C语言实现数据库连接池操作。
  • Linux 代理 一个客户端来就创建一个连接
  • SecureCRT连接linux。为什么我在linux的/etc/sysconfig/下找不到iptables?
  • linux问题 secureCRT连接的问题 在线等急!~~
  • 我想用Linux的串口和S3c2410x连接,请问在Linux里面怎么找到那个超级终端?
  • 高分求教,linux下的GPRS连接!!!
  • 用xmanager远程连接不上linux桌面
  • 怎样在linux下建立一个PPP服务器,并在另一台机子上通过pppd来建立连接呀?
  • 用windows客户机登陆Linux服务器不能建立建立文件夹????[img=http://forum.csdn.net/PointForum/ui/scrip
  • 请问在linux中怎么来建立ftp和web服务器,怎么建立和windows的局域网
  • linux系统中建立一个用户专门用来修改系统时间怎么做?
  • 在pxa255建立linux2.4的系统,需要哪些补丁啊?
  • Linux用什么命令建立一个.cpp文件?
  • linux 刚建立的符号连接为什么会闪而且是红色的
  • linux管道问题,管道建立后如何同步?
  • 不好意思,问一下LINUX下建立文件夹的命令是什么?THANKS!!!
  • 在linux下怎样 建立一个指定路径的文件夹!!!!
  • linux下怎么建立自己的程序文件并运行
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Docker官方镜像将会使用Alpine Linux替换Ubuntu
  • linux支持ti-rpc么?ti-rpc在linux中是不是只使用udp协议,不能使用tcp协议
  • linux下free命令显示的内存使用情况分析
  • 求redhat linux 9.0下可以使用的oracle 10g或9i,还有redhat linux 9.0下可以使用的eclipse下载地址
  • linux下不使用sudo命令执行docker的操作步骤
  • 原来装了linux和win2k,使用LiLO启动,现在重新win2k,如何恢复使用LILO来引导使得Linux可用
  • 如何使用linux下gdb来调试python程序
  • 在shell中使用数组需要什么特殊的条件马? 怎么在有的linux下能够用,在有的linux下就不能能使用?
  • linux/Centos/ubuntu下如何使用umask命令修改新建文件时的默认权限
  • asp程序使用的access在Linux下如何使用!
  • linux下c/c++使用hash_map方法介绍
  • [请置顶]关于Linux的安装使用问题 请放到 软件使用/操作系统 里提问
  • linux下objdump命令用法介绍及如何使用objdump命令进行反汇编
  • 新装的Linux使用root用户不能使用FTP?
  • linux下top命令详解包括top命令参数使用及结果(virt,res,shr)排序举例说明
  • LINUX下使用Eclipse,如何使用交叉编译器?
  • linux top命令详解以及top命令的各项使用技巧详细说明
  • linux系统下使用使用性能监视工具的前提?
  • 使用VWMARE安装linux的内存使用问题
  • 嵌入式Linux使用外挂Vsftpd不能正常使用, 请高手解答,谢谢。
  • linux下用什么命令使用怎样使用*.bin文件?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux


  • 站内导航:


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

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

    浙ICP备11055608号-3