Windows中的C如何实现端口重定向?
我有一个C语言的项目,在其中我接收HTTP GET请求(端口10000),处理它并发送适当的响应。我使用winsock库进行网络连接。我还有一个模块,它在不同的端口(端口10001)上接收HTTPS请求。客户端指定它必须发送到哪个端口,如果它正在发送http消息,它将在端口10000上发送,如果它是https请求,它将发送到端口10001。 因此,我意识到,接下来的请求是HTTP或HTTPS请求。 有一个要求,即客户端将只指定一个端口号,无论是HTTP还是HTTPS,即它将只在端口10000上发送Windows中的C如何实现端口重定向?,c,https,port,winsock2,C,Https,Port,Winsock2,我有一个C语言的项目,在其中我接收HTTP GET请求(端口10000),处理它并发送适当的响应。我使用winsock库进行网络连接。我还有一个模块,它在不同的端口(端口10001)上接收HTTPS请求。客户端指定它必须发送到哪个端口,如果它正在发送http消息,它将在端口10000上发送,如果它是https请求,它将发送到端口10001。 因此,我意识到,接下来的请求是HTTP或HTTPS请求。 有一个要求,即客户端将只指定一个端口号,无论是HTTP还是HTTPS,即它将只在端口10000上发
现在,当HTTPS消息出现在端口10000上时,它将被全部加密,但我希望该消息转到端口10001。有没有办法在服务器级别区分HTTP或HTTPS请求 如果来自客户端的第一个字节是
0x16
,则它是SSL握手的开始。由于这不是HTTP请求的一个可能开始,您可以通过此属性区分请求。所有HTTPS消息都以0x16开始?我收到的数据是char*buf;那么我必须写if(*buf=='0x16')?这是写入方式吗?它们以字节0x16开始,而不是以字符串“0x16”开始<代码>如果(buf[0]==0x16)){/*服务https*/}其他{/*服务http*/}谢谢!我会试试看!HTTPS握手以0x16开始,但通过HTTPS发送的其余消息不以0x16开始