php 开启 stream_socket_client,PHP stream_socket_client():無法連接到https
时间: 2023-08-03 07:04:13 浏览: 166
这个问题可能是由于 PHP 的 OpenSSL 扩展未启用或未正确配置导致的。请确保已启用 OpenSSL 并正确配置了 SSL/TLS 证书。另外,也可能是防火墙或代理服务器的问题,您可以尝试通过禁用防火墙或更换代理服务器来解决问题。如果问题仍然存在,您可以尝试使用 cURL 或其他库来处理 HTTPS 请求。
相关问题
import socket server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind(('172.26.79.123', 9999)) server_socket.listen(5) clients = {} ##注册 def register(client_socket): # 处理客户端注册请求 # 获取注册信息 username = client_socket.recv(1024).decode() password = client_socket.recv(1024).decode() # 存储注册信息 # 这里可以使用文件、数据库等方式存储信息 # 为简单起见,我们在字典中存储注册信息 if username in clients: client_socket.send(b'Username already exists.') else: clients[username] = password client_socket.send(b'Register success.') ##登陆 def login(client_socket): # 处理客户端登录请求 # 获取登录信息 username = client_socket.recv(1024).decode() password = client_socket.recv(1024).decode() # 验证登录信息 if username in clients and clients[username] == password: client_socket.send(b'Login success.') else: client_socket.send(b'Login failed.') def handle_client(client_socket): # 处理客户端请求 while True: # 获取客户端请求类型 request_type = client_socket.recv(1024).decode() if request_type == 'register': register(client_socket) elif request_type == 'login': login(client_socket) else: client_socket.send(b'Invalid request type.') while True: client_socket, addr = server_socket.accept() clients[client_socket] = addr print('Connected with', addr) handle_client(client_socket)这是服务器端的代码,其中有注册和登陆的功能,请根据此代码写出对应的客户端的代码
以下是客户端代码:
```
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('172.26.79.123', 9999))
def register():
# 处理注册请求
username = input('Please enter your username: ')
password = input('Please enter your password: ')
client_socket.send('register'.encode())
client_socket.send(username.encode())
client_socket.send(password.encode())
response = client_socket.recv(1024).decode()
print(response)
def login():
# 处理登录请求
username = input('Please enter your username: ')
password = input('Please enter your password: ')
client_socket.send('login'.encode())
client_socket.send(username.encode())
client_socket.send(password.encode())
response = client_socket.recv(1024).decode()
print(response)
while True:
action = input('Please enter an action (register/login): ')
if action == 'register':
register()
elif action == 'login':
login()
else:
print('Invalid action.')
```
STREAM_CRYPTO_METHOD_TLS_CLIENT 等于57 stream_socket_enable_crypto无响应
`STREAM_CRYPTO_METHOD_TLS_CLIENT` 是用于在流上启用 TLS 客户端加密的常量,它的值为57。而 `stream_socket_enable_crypto` 函数是用于在流上启用加密的函数,可以使用它来启用 TLS 加密。
如果 `stream_socket_enable_crypto` 函数无响应,可能是因为与服务器的握手失败,或者由于服务器证书无法验证而导致连接失败。您可以尝试检查服务器证书是否有效,并确保您正在使用正确的端口和协议。另外,您还可以尝试在调用 `stream_socket_enable_crypto` 函数之前,先建立好与服务器的连接。
阅读全文