эй, поэтому я использую сервер, чтобы получить имя пользователя по электронной почте и пароль, затем получить их и выложить sh их в мою таблицу SQL, но она закрывается после второго процесса регистрации, любой ввод будет оценен, я не очень хорош с сокеты или сервер-клиент, но вы действительно хотите изучить его, поэтому, если у вас также есть хорошие источники для изучения, это будет очень приличный код сервера:
import mysql.connector
import socket
userinfo=[]
def server_program():
# get the hostname
host = socket.gethostname()
port = 5000 # initiate port no above 1024
server_socket = socket.socket() # get instance
# look closely. The bind() function takes tuple as argument
server_socket.bind((host, port)) # bind host address and port together
# configure how many client the server can listen simultaneously
server_socket.listen(1)
conn, address = server_socket.accept() # accept new connection
print("Connection from: " + str(address))
while True:
# receive data stream. it won't accept data packet greater than 1024 bytes
data = conn.recv(1024).decode()
if not data:
# if data is not received break
break
print("from connected user: " + str(data))
username = data
userinfo.append(username)
print(userinfo)
# print(username)
data = "s"
conn.send(data.encode()) # send data to the client
# conn.close() # close the connection
print(userinfo[0])
mydb = mysql.connector.connect(
host="",
user="",
passwd="",
database=""
)
mycursor = mydb.cursor()
email=userinfo[0]
password=userinfo[1]
Username=userinfo[2]
sql = "INSERT INTO Users (Pass, Email, Username) VALUES (%s, %s, %s)"
val = (password, email, Username)
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
del userinfo[:]
server_program()
if __name__ == '__main__':
server_program()
код клиента:
import socket
email=""
password=""
Username=""
def client_program():
host = socket.gethostname() # as both code is running on same pc
port = 5000 # socket server port number
client_socket = socket.socket() # instantiate
client_socket.connect((host, port)) # connect to the server
message = email
i=0
while i != 3:
client_socket.send(message.encode()) # send message
data = client_socket.recv(1024).decode() # receive response
print('Received from server: ' + data) # show in terminal
# message = input(" -> ") # again take input
message = password
# message1 = "password"
i=i+1
if i == 2:
message = Username
client_socket.close() # close the connection
if __name__ == '__main__':
client_program()