我已经为我的一个项目创建了这个服务器,它完成时没有任何错误,但我希望它能够侦听传入的连接这里是代码
import socket
import sys
def socket_cr():
try:
global host
global port
global s
host = ''
port = 9999
s= socket.socket()
except socket.error as msg:
print("socket creatin error " + (str(msg)))
socket_cr()
def socket_bind():
try:
global host
global port
global s
print("binding to port :" + str(port))
s.bind((host, port))
s.listen(5)
except socket.error as msg:
print("Socket binding error" + str(msg) + "\n" + "retrying")
socket_bind()
def socket_acept():
conn, address = s.accept()
print("connection has been astablished | " + "IP" + address[0] + "| port" + str(address[1]))
def send_command(conn):
while True:
cmd = input()
if cmd == 'quite':
conn.close()
s.close()
sys.exit()
if len(str.encode(cmd)) > 0:
conn.send(str.encode(cmd))
client_response = str(conn.recv(1034), "utf-8")
print(client_response, end="")
def main():
socket_cr()
socket_bind()
socket_acept()
main()
输出为:
Process finished with exit code 0
把它放在端口9999的绑定插座上
你的代码有很多问题。如果你不介意的话,我将为你重写整个代码。 修订代码:
如您所见,为所有这些函数定义函数是不必要的,这会使代码变得不干净。现在,如果可能的话,应该在代码的开头定义变量。而且,您应该使主机
0.0.0.0
,以确保公共访问。 现在,记住,函数不应该被过度使用很乐意帮忙
相关问题 更多 >
编程相关推荐