主题:通讯

  共有23987人关注过本帖    
wp
1楼


通讯  发帖心情 Post By:2005-6-6 14:50:00   [只看该作者]

是不是tcp通讯要比gprs通讯建立连接慢一些?每次当etr232i进行tcp连接断开后,再次进行连接时,都会在很长一段时间连接不上,除非手动按reset或重开服务器,才能连上。即使很长时间连上后,通讯很不稳定!不稳定体现在服务器发的数据收不到,但232i能处于连接状态!
怎样能比较稳定的进行tcp通讯,每次重连连不上,不知道是网络问题,还是应该在写这段程序上注意什么问题,还有我每次调用sysreboot()这个函数,好象效果没有手动reset彻底。时钟在sysreboot()后,好象还可以取到sysreboot()前的值,变量值好象没有完全清空。

  单帖管理 | 引用 | 回复 回到顶部
x10
2楼


  发帖心情 Post By:2005-6-6 21:41:00   [只看该作者]

请确认以客户端方式打开连接时,每次督需要使用不同的本地端口号,调用myport( ),因为,按照TCP的协议,每一个连接号在关闭后有大约2min不能再用,否则会被协议当成上一次连接的操作,于是系统处于异常状态,直至超时(timeout)。
目前的sysreboot只是软件重起,没有对硬件复位,我们在后续的新版中会加入CPU对外设的复位操作。你说的时钟是指clock()值吗?不是很明白。

  单帖管理 | 引用 | 回复 回到顶部
wp
3楼


  发帖心情 Post By:2005-6-7 8:53:00   [只看该作者]

我也注意到这一点,所以每次当它断开重连时,我都会让它重新获取本地端口号和连接号,但每次重新获得的连接号都是上一次断开前的连接号,而且获得连接号总是为0。我运行这么长时间从来没有获得过0以外的连接号?
我将取到的时钟给struct date d;struct time t;然后sysreboot,而struct date d;struct time t中的值好象并没有清空。

  单帖管理 | 引用 | 回复 回到顶部
x10
4楼


  发帖心情 Post By:2005-6-7 9:12:00   [只看该作者]

打开连接返回的连接号不是所说的TCP的端口号,连接号仅仅是用于操作该连接的handler,如果同时只有一个连接,通常都是0,而本地端口号(local port number)是ConnOpen()的一个输入参数(unsigned int),请参阅编程手册对TCP API函数的说明。

  单帖管理 | 引用 | 回复 回到顶部
wp
5楼


  发帖心情 Post By:2005-6-7 9:24:00   [只看该作者]

刚刚我试了一下,如果在sysreboot后,进行连接的话,使用myport( )得到的端口号都在2000以下,但TCP API函数编程手册上写的范围是2000-9000,那2000以下的本地端口进行连接会不会影响连接的质量?

  单帖管理 | 引用 | 回复 回到顶部

返回首页

通讯

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: