以下是我的服务端代码,在运行一段时间后8090端口就不同了,但从在Windows中查看这个端口还是被占用没有释放掉,更换了好几台服务器都有这个问题。
from http.server import HTTPServer, BaseHTTPRequestHandler
import json
import configparser
import socket
class Resquest(BaseHTTPRequestHandler):
def handler(self):
print("data:", self.rfile.readline().decode())
self.wfile.write(self.rfile.readline())
def do_GET(self):
print(self.requestline)
if self.path != '/hello':
self.send_error(404, "Page not Found!")
return
data = {
'result_code': '1',
'result_desc': 'Success',
'timestamp': '',
'data': {'message_id': '25d55ad283aa400af464c76d713c07ad'}
}
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
self.wfile.write(json.dumps(data).encode())
def do_POST(self):
CIP = self.client_address[0]
print('ClientIP=' + CIP)
req_datas = self.rfile.read(int(self.headers['content-length']))
CH = req_datas.decode()
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
try:
self.wfile.write( CH.encode('utf-8'))
except Exception as e:
SErr = str(e)
print('【' + CIP + '】 ' + 'Error: ' + SErr)
if __name__ == '__main__':
httpserverport = 8090
host = ('', int(httpserverport))
server = HTTPServer(host, Resquest)
print("Starting server, listen at: %s:%s" % host)
hostname = socket.gethostname()
print('计算机名:'+ hostname)
ip = socket.gethostbyname(hostname)
print('计算机IP:'+ip)
server.serve_forever()
杀进程啊
启动的时候读取并保存pid,打印或保存到文件,
pid = os.getpid() # 获取进程的pid
windows下 使用 taskkill /pid 22222(python中读取的pid值)
不是其他的进程占用这个端口,是我自己的程序一直用着,是程序启动后端口连接正常,运行一段时间后端口就连不上了,Telnet也不通