Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

输入127.0.0.1后浏览器一直加载以及输入颜色后没有显示的解决方案 #58

Open
jyj234 opened this issue Feb 11, 2023 · 3 comments

Comments

@jyj234
Copy link

jyj234 commented Feb 11, 2023

首先是网上说的将index.html的访问权限改为不可执行,参考第一个评论https://zhuanlan.zhihu.com/p/105656761
但是还是浏览器运行后一直显示加载,我使用gdb调试后发现,clint_sock本来是4但是在传入accept_request之后,赋给client的值是-8764
image
此时我注意到了intptr_t并查阅了相关的资料,发现这个类型的大小等于机器的位数,由此保证void转换成立,但是我编写了一个程序发现这个转化后的值等于指针的值而不是client的值,因此我将int client=(intptr_t)arg;改为了int client=(int*)arg;使得浏览器可以访问,但是这个用法不知道是哪里出现了问题。
image
最后输入颜色没有显示的问题是由于perl路径设置错误,输入which perl获得perl的路径,在check.cgi和color.cgi中的第一行的路径改为自己的就可以了。
希望可以帮到一些和我遇到同样问题的人

@Liusandian
Copy link

Liusandian commented Feb 11, 2023 via email

@changxian-gu
Copy link

void* 的作用是什么呢?accept()的返回值是一个socket描述符,它是一个int类型,将accept_request(void *)修改为accept_request(int arg),同时main函数调用时直接传值,直接调用accept_request(client_sock); 可以正常运行

@Liusandian
Copy link

Liusandian commented Mar 13, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants