社区
通信技术
帖子详情
请教关于套接字的问题
csw
2002-07-23 10:08:54
1。套接字中有很多步都是同时具备同步和异步的调用,假设在某个地方
调用的是同步函数,而另外一个地方调用的是异步函数,那么整个过程
表现的是同步还是异步呢?
2。关于原始套接字,如果创建的是一个原始UDP套接字,那么发送接受的是不是
都是有IP头和UDP头的呢?那假设发送端用原始的,那么需要自己构造IP头等
信息?那么如果在接受端用普通的,能收到IP头吗?那个IP_hdrincl又是什么
意思?
...全文
42
10
打赏
收藏
请教关于套接字的问题
1。套接字中有很多步都是同时具备同步和异步的调用,假设在某个地方 调用的是同步函数,而另外一个地方调用的是异步函数,那么整个过程 表现的是同步还是异步呢? 2。关于原始套接字,如果创建的是一个原始UDP套接字,那么发送接受的是不是 都是有IP头和UDP头的呢?那假设发送端用原始的,那么需要自己构造IP头等 信息?那么如果在接受端用普通的,能收到IP头吗?那个IP_hdrincl又是什么 意思?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
csw
2002-07-28
打赏
举报
回复
谢谢
xuying
2002-07-28
打赏
举报
回复
自己写写程序就知道了,光看书有什么用。
csw
2002-07-28
打赏
举报
回复
刚看了一下书,觉得你的说法好象有点问题,
SIO_RCVALL是接受所有的封包,而不是那个头,
而ip_hdrincl选项是才保证了“促使接受
函数将IP头包括为自己数据的一部分”
我这几个概念一直不清楚,希望向你请教
QQ:33854303。谢谢。
xuying
2002-07-28
打赏
举报
回复
是的,是在收到的buffer中包含了ip头,否则就只有数据。
csw
2002-07-28
打赏
举报
回复
哦。请问你的意思是不是这样:
使用ip_hdrincl可以在发送端构造自己的IP头,使用sio_rcvall
可以在接受端解析自己的IP头?。。
那我看那本网络编程选项那章提到:
为了取得IP选项中的数据,必须设置为原始套接字,请问这个具体
在数据格式上起到个什么作用呢?是在收到的BUFFER里面包括了
IP头吗?还是什么意思呢。谢谢。
xuying
2002-07-28
打赏
举报
回复
ip_hdrincl是用于发送端填写报文头的,接收端又不需要填写报文头。
如果要在接收端解析报文,用sio_rcvall。
csw
2002-07-28
打赏
举报
回复
那么请问如果我用了这个选项是不是就是在接受端可以自己解析包头呢?
那如果是这样的话,跟原始的有什么关系呢?谢谢
xuying
2002-07-28
打赏
举报
回复
1. 你的socket可以确定是同步还是异步。如果是异步调用的时候阻塞了,会出现wouldblock错误。
2. 不论你用什么socket,发出的报文都是有ip报文头的,只不过一般是由系统填写ip报文头,而用了ip_hdrincl后,由你的程序填写ip报文头。接收方收到报文后是不会区分是你的程序添的报文头,还是由系统添的。都会按同样的方式解析报文头。
young_wind
2002-07-24
打赏
举报
回复
接受到的任何TCP和UDP分组都不会传递给原始套接口
如果IP_HDRINCL没设置,内核写的数据起始地址为IP头部后的第一个字节,这样内核会构造头部
如设置了则内核写的数据起始地址为IP头部的第一个字节,这样你的进程就要构造IP头部了
city_lovelace
2002-07-23
打赏
举报
回复
解答2:
好像没有办法创建的是一个原始UDP套接字,两者不能皆有;
不需要自己构造IP头;
IP_hdrincl是自己构造IP头,IP层不修改这个IP头
一个牛人提供的GIS源码(很好)
已知一点求最近点(
问题
请教
) http://www.cnblogs.com/Tangf/archive/2006/05/28/411182.html ┕求最近点示例代码(基于MAPX5,VB6实现):http://www.cnblogs.com/Files/Tangf/neardis.rar 基于数据库的公交换乘算法...
oracle 无法从
套接字
,十万火急!300分高分求助!关于oracle jdbc “无法从
套接字
读取更多的数据”的
问题
(300分)...
我在运行一段使用sql语句访问oracle9.2的java程序的时候,遇到了如下的异常:java.sql.SQLException: 无法从
套接字
读取更多的数据at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)at oracle....
Java中
套接字
(socket)以及有关概念入门
套接字
入门理解,还不懂的可以入门学习
Socket.Select()函数使用不当引发的
问题
(关于
套接字
在线程间传递是否可行的验证)
使用环境:VS2010 C# ...创建了一个接收线程,对监听
套接字
集中的
套接字
进行消息接收,并将该消息显示出来; 其中,监听
套接字
集中有与服务器连接的
套接字
srvCommSock 出错状况: 类似下图所示 即
C#
套接字
学习总结
C# 实现基本的
套接字
TCP通信 在C#中,实现了很多对Windows API的封装,在
套接字
通信方面也是如此。下面是一个TCP网络通信的简单实例,因为自己初学C#,记下来 学习 使用名字空间: using System...
通信技术
4,391
社区成员
28,906
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章