为何使用vxworks自带的wind web server,点几下网页上的链接就无法打开网页?

my_a888_cn 2008-09-08 04:44:40
如题。
使用vxworks2.2自带的wind web server,如果点网页上的链接速度太快,浏览器就显示无法显示网页。过了半分钟又恢复正常?
而且发现目标机的web server无相应后,目标机同样使用tcp的telnet server和smtp client都无法使用,大家有遇到这种情况吗?
我还porting了另外的web server,不再用vxworks自带的了,没想到同样发生这样的问题。我的web server的initial和task入下:

int http_init()
{
...
httpsock = socket(AF_INET, SOCK_STREAM, 0);
if(httpsock == ERROR)
return -1;

httpsin.sin_family = AF_INET;
httpsin.sin_addr.s_addr = htonl(INADDR_ANY);
httpsin.sin_port = htons(80); /* http port */
e = bind(httpsock, (struct sockaddr*)&httpsin, sizeof(httpsin));
if(e)
{
printf("error %d binding tcp http server\n", e);
return -1;
}
e = listen(httpsock, 254);
if(e)
{
printf("error %d starting listen on http server\n", e);
return -1;
}
}

void http_task (void)
{
while (httpsock != ERROR) {
httptmp = accept(httpsock, (struct sockaddr *)&client, &addrlen);
if(httptmp != ERROR)
{
http_connection(httptmp);
httptmp = ERROR;
}
http_loop();
taskDelay(1);
}

我发现web server出现问题后,浏览器再发tcp connect请求,目标机直接将这个tcp session reset。
大家有遇到这种情况吗?
...全文
318 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
huisheng0108 2009-03-13
  • 打赏
  • 举报
回复
怎么解决的呢?
cherq 2008-09-28
  • 打赏
  • 举报
回复
是web服务器等到客户端的时间,你可以把HTTP_SOCK_TIMEOUT 的时间改小点。我是这样解决的不知道你是怎样解决的?
my_a888_cn 2008-09-19
  • 打赏
  • 举报
回复
这么长时间都没人回啊,寒一个
不过花了两周时间,成功解决此问题
my_a888_cn 2008-09-08
  • 打赏
  • 举报
回复
不好意思,用的是vxworks5.5。
http initial部分遗漏了一部分代码:
int http_init()
{
...
/* start up an HTTP port listen */
httpsock = socket(AF_INET, SOCK_STREAM, 0);
if(httpsock == ERROR)
return -1;

httpsin.sin_family = AF_INET;
httpsin.sin_addr.s_addr = htonl(INADDR_ANY);
httpsin.sin_port = htons(80); /* http port */
e = bind(httpsock, (struct sockaddr*)&httpsin, sizeof(httpsin));
if(e)
{
printf("error %d binding tcp http server\n", e);
return -1;
}

/* Set listen socket's non-blocking flag so we can poll accept() */
on = 1;
if(ioctl(httpsock, FIONBIO, (int)&on) == -1 ) {
printf("error ioctl() fail!\n");
return -1;
}

e = listen(httpsock, 254);
if(e)
{
printf("error %d starting listen on http server\n", e);
return -1;
}

return 0;
}

2,179

社区成员

发帖
与我相关
我的任务
社区描述
xworks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。
社区管理员
  • VxWorks开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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