非常小和具体的问题,如果有人可能知道,关于套接字系统调用函数协议参数,在手册中,它说明了协议的位置,当我听到套接字协议时,我开始认为这是您将23放在telnet的位置,或者80放在http的位置。这是正确的吗?
sockfd = socket(AF_INET,SOCK_STREAM,0);
我只看到传递了0或其他非整数参数,我可以在这里放80来声明我想做HTTP吗?
此外,还可以通过C++导入的BSD套接字库进行套接字编程。但是对我来说,从套接字到HTTP编程的步骤似乎并不清楚,一旦编程完成,我将如何在此套接字网络之上创建HTTP层呢?
提前感谢你(第一次参加这个论坛)
http://linux.die.net/man/2/socket
what does 0 indicate in socket() system call?
Is it possible to use port 80 for both HTTP and web socket traffic?
发布于 2015-04-15 16:36:05
socket函数的第三个参数指定所需的SOCK_STREAM类型。除了默认TCP之外,它还可以是例如SCTP。
HTTP位于更高的位置,因此它不需要在传输层进行特殊处理。一种是仅在将创建的套接字bind到网络地址时指定端口。
发布于 2015-04-15 16:29:42
socket的第三个参数适用于高于TCP或UDP但低于应用程序的协议。我不相信目前存在这样的协议,所以除非你正在做一些非常,非常不寻常的事情,否则这个值总是为零。
可以想象以这种方式指定的中间协议的实现。例如,一个平台可以这样实现SSL。
https://stackoverflow.com/questions/29645221
复制相似问题