【问题标题】:Connect sql server to Python3 - client-server将 sql server 连接到 Python3 - 客户端-服务器
【发布时间】:2020-10-09 23:39:30
【问题描述】:

我是使用 python 进行套接字编程的新手,我为客户端和服务器编写了一些未完成的代码。 我想将我的服务器端连接到 Sql server dbms 以在那里存储数据(这是一个学生管理系统)我想从客户端发送一些数据,然后服务器端将它们存储在数据库中,当客户端询问时返回它们。 这是我的双方代码: 这是客户:

    import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host ="127.0.0.1"
port =8000


def send(message):
   message=str(message)
   s.send(message.encode())
   data = s.recv(1024).decode()
   print (data)
def end():
   s.close ()
def menu1():
   print("Data has been saved to DB!\nWhat you need next?\n1.Close Connection.\n2.Enter More Data.\n3.Get Data.")
   while 1:
      m=input()
      if int(m)==1:
         end()
      elif int(m)==2:
         enter_data()
      elif int(m)==3:
         get_data()
      else:
         print("Choose a Num between 1-3!\n")

def enter_data():
   flag=0
   while 1:
      if flag==0:
         r = input('enter amount of student: ')
      for i in range (0,int(r)):
         name=input("Enter Student %d name"%(i))
         send(name)
      break
   menu1()
def start():
   s.connect((host,port))
   print("You are connected to server!")
   print("1.Enter Data")
   print("2.Get Data")
   m=input()
   if int(m)==1:
      enter_data()
   elif int(m)==2:
      end()
def menu():
   m = input("press any key to connect!\n");
   start()

if __name__ == "__main__":
   menu()

这是服务器端代码:

import socket
from threading import *

serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = ""
port = 8000
#print (host)
#print (port)
serversocket.bind((host, port))

class client(Thread):
    def __init__(self, socket, address):
        Thread.__init__(self)
        self.sock = socket
        self.addr = address
        self.start()

    def run(self):
        #amount=self.sock.recv(1024).decode()
        #amount=int(amount)
        #counter=0
        while 1:
            api=self.sock.recv(1024).decode()
            #print(self.sock.recv(1024).decode())
            print("Client sent some messages: %s"%(api))
            #api=self.sock.recv(1024).decode()
            if str(api)=="avarage":
                avarage=2/10
                c=str(avarage)
                self.sock.send(c.encode())
            else:
                avarage = 3 / 10
                c = str(avarage)
                self.sock.send(c.encode())

serversocket.listen(5)
print ("server started and listening to port:%s"%(port))
while 1:
    clientsocket, address = serversocket.accept()
    client(clientsocket, address)

我对这种类型的编程有点陌生,所以请给我一些我需要添加的代码。 提前致谢。

【问题讨论】:

    标签: python sql-server sockets client-server


    【解决方案1】:

    我知道这段代码的某些部分不可用,我只是写它们来测试一些东西并了解它的概念。 当我想关闭连接服务器端时,我也收到了这个错误:

      File "C:/Users/name/PycharmProjects/Socket/venv/Socket1.py", line 23, in run
        api=self.sock.recv(1024).decode()
    ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-03
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多