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

问个TCP的发送接收问题

    来源: 互联网  发布时间:2015-12-04

    本文导语:  在网络的二端(tcp/ip连接),发送端不断的send(一个结构指针) 接收端不断的recv(一个结构大小) 那么接收到的是不是一定是一个完整的结构?可能出现只发送了一个结构的一半数据吗?如果可能是否需要使用缓冲保存?...

在网络的二端(tcp/ip连接),发送端不断的send(一个结构指针)
接收端不断的recv(一个结构大小)
那么接收到的是不是一定是一个完整的结构?可能出现只发送了一个结构的一半数据吗?如果可能是否需要使用缓冲保存?再根据缓冲的大小是否满足sizeof(结构)后再去解吸

|
光发送结构指针没有用,接收端是收不到这个结构里的数据。

|
可能出现你说的情况,比如数据包太大需要进行ip层的分片,如果发送了一半网络断了,而你接收端用了非阻塞方式,或者原始数据包的形式,那就出现你的情况了。如果你使用tcp套接字我觉得不会出现你说的问题了。

|
不会!但是最好不要直接传结构,历史已经证明这不是一个好方法(wall就是一个例子)

|
TCP可以窥探数据的大小,可以用这个方法试试。
一般在传输的时候转为char传输。
结构体可能由于系统的区别,导致结构体在不同系统上的大小不同。

|
linaxing(孩子她爹)
为什么不会?
一端是原始套节子,一端是tcp套节子

|
学习

|
接收buffer的size無嚴格限制﹐但要比結構的大﹐2倍以上最好﹐結構的前面几個字節定義為起始位﹐接收到它并且size足夠﹐就用memcpy copy到接收的結構中去

主要注意兩點﹐能足夠准確的辯別起始位(應該是多個字節)﹐從起始位開始﹐Size足夠。

如果必要的話﹐結構的后面加一個CRC Check作正確性檢查

|
linaxing(孩子她爹)
为什么不会?
一端是原始套节子,一端是tcp套节子
===============================
人家说了是用TCP/IP,所以不会

|
自己定分隔符。TCP包可能会发生粘连的。

|
结构会有字节续对齐问题,最好不要用结构传输

    
 
 

您可能感兴趣的文章:

  • 求助!!!linux tcp发送 xp tcp接收 出现的问题
  • 请问在linux上tcp能够接收的最大连接数是多少?
  • linux 下 tcp接收窗口大小问题
  • 关于接收端对TCP报文校验和的处理
  • 谁有Linux下的TCP/IP编程的例子,侦听,接收,发送,继续循环侦听
  • TCP发送数据,假如发送套接口是非阻塞的,而要发送的数据大于缓冲区尺寸
  • 请问RST在什么情况下发送?? 使用TCP socket编程的话是否会引起这种TCP包的发送?
  • 发送大量tcp包,丢包问题
  • tcp连接未断开,发送失败?
  • 使用tcp协议发送数据, 如果获得系统底层将包发到客户端之间的耗时?
  • 操作系统 iis7站长之家
  • 为什么我TCP发送一个包,对方就回一个ACK?
  • 关于发送心跳包检测TCP连接是否断开
  • 请问tcp 客户服务器模型(C/S模型)客户端两个send如果发送间隔太短,服务器端为什么会认为受到的只是一个包
  • 为什么对外发送大量的TCP数据包都几乎被kernel丢弃了呢
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • TCP_NODDELAY的问题
  • 控制在网络上传输TCP数据包的大小的问题
  • udp服务器和TCP服务器的问题
  • TCP状态问题
  • TCP通信select 非常奇怪的问题
  • TCP connect 相关问题
  • 跟相同IP,端口不同的TCP服务端连接问题
  • 询问一个TCPDUMP语法问题 在抓TCP包时不能指定IP吗?
  • TCP套接字抓包的问题
  • TCP与UDP通信问题!
  • C++ socket 变成遇到无法解决的tcp 分片问题
  • 关于tcp协议的问题
  • ubuntu下tcp程序问题
  • 请教: tcp传输同步问题
  • 网络编程TCP header问题。
  • 关于TCP效率问题
  • 问一个TCP连接终接的问题
  • 问个最简单的TCP/IP传输问题
  • tcp抓包问题
  • 在Linux下同时使用5000个TCP连接的问题
  • java命名空间java.net接口socketoptions的类成员方法: tcp_nodelay定义及介绍
  • http走的是tcp还是udp?ssh是tcp还是udp?
  • Linux内核中影响tcp三次握手的一些协议配置
  • 100分求《嵌入式系统Web服务器—TCP/IP Lean》或《TCP/IP Lean Web Servers for Embedded Systems 》
  • TCP协议报头字段详解及报头图
  • tcp和udp套接字有何不同?在什么情况下用tcp什么情况下用udp????
  • 对TCP协议状态及状态转换理解
  • tcp_prequeue_process怎么调用了tcp_v4_do_rcv的??求解??在tcp_recvmsg调用的
  • TCP协议四次断连过程介绍及Linux内核协议栈中相关设置项
  • 请问怎么知道每个TCP连接所属哪个进程??还有怎么样断开系统中任意一个TCP连接?
  • TCP协议三次握手过程详解


  • 站内导航:


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

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

    浙ICP备11055608号-3