问一个关于send的简单问题

block1956815 2004-07-28 02:39:59
如:int PASCAL FAR send(SOCKET s,const char * buf,int len,int flags)
我想问这个buf应该是哪一层的数据?
如: data
tcp+data
还是:ip+tcp+data
指教。
...全文
185 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
block1956815 2004-07-29
  • 打赏
  • 举报
回复
up一下!
biliangxia 2004-07-29
  • 打赏
  • 举报
回复
是data, 采用socket 发送数据的方式经常用。
block1956815 2004-07-29
  • 打赏
  • 举报
回复
是的 就是自己添加的信息 会是什么原因? 校言和是重新计算了的~~~
c4313848 2004-07-29
  • 打赏
  • 举报
回复
是ip和tcp自己添加信息的
block1956815 2004-07-29
  • 打赏
  • 举报
回复
现在有这个问题 :重新封装了ip包 但是发送不成功 调用send函数成功 但是目的主机没有收到数据 可能是什么原因?
sugus 2004-07-28
  • 打赏
  • 举报
回复
用raw socket发送时的sento语句里的确应指明目的地址,在自己写IP头部和TCP头部时也得自己写所有信息,包括目的地址和端口。
正常情况下二者应该是一致的。如果不一致的话可能涉及到IP欺骗,具体情况如何,我对于自己封装ip包接触不多,能力所限,就不太清楚了。
block1956815 2004-07-28
  • 打赏
  • 举报
回复
用raw socket发送:
sendto(RawSock, SendBuf, MAX_PACK_LEN,
0, (struct sockaddr*)&addr_in, sizeof(addr_in));
(struct sockaddr*)&addr_in---这里不也指明了地址~~~??? 前提是自己封装ip包
铖邑 2004-07-28
  • 打赏
  • 举报
回复
os会将对端的地址、端口等信息存放在与SOCKET s关联的数据结构中。
sugus 2004-07-28
  • 打赏
  • 举报
回复
hehe 你上面不是说用send(SOCKET s,const char * buf,int len,int flags)吗

如果是diagram socket,用的sendto(SOCKET s,const char FAR* buf, int len,int flags,
const struct SOCK_ADDR* to,int tolen)里自然要写明目的地址了,用send(SOCKET s,const char * buf,int len,int flags)就会报错了
block1956815 2004-07-28
  • 打赏
  • 举报
回复
socket在send之前就已经和对方主机connect了
------------------------------------------------------------------
是这样吗? 是stream socket才是吧。 好像raw socket和diagram socket都不需要先建立连接的。。。
sugus 2004-07-28
  • 打赏
  • 举报
回复
data的tcp、ip是在tcp层、ip层封装数据报的时候自动填入的

socket在send之前就已经和对方主机connect了,他自然知道该往哪个主机传
block1956815 2004-07-28
  • 打赏
  • 举报
回复
如果是data 那么os如何知道data的ip tcp信息呢? 他如何决定该往那里 internet上哪个目的主机转发这个data?
bluwindhrt 2004-07-28
  • 打赏
  • 举报
回复
send跟recv的buffer都是data层数据,其上的各层它们会负责“包装”!
numen27 2004-07-28
  • 打赏
  • 举报
回复
data
block1956815 2004-07-28
  • 打赏
  • 举报
回复
up!
jim2001999 2004-07-28
  • 打赏
  • 举报
回复
gz

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧