Python 상주 작업 외부 매개 변수 코드 분석 실현

간단 한 상주 임 무 를 수행 하 는 것 은 쉬 운 일이 다.while True 를 쓰 면 되 지만 외부 에서 들 려 오 는 인 자 를 동시에 받 아들 일 수 있다 면 조금 복잡 하 다.
제 가 제일 먼저 생각 한 건 네트워크 프로 그래 밍 의 server/client 모드 입 니 다.
server 는 상주 프로 세 스 로 서 client 에서 보 내 온 각종 매개 변 수 를 받 아들 여 처리 할 수 있 습 니 다.
서버:server.py

import sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('127.0.0.1', 10001))
s.listen(5)
def do_some():
  pass
def do_other():
  pass
def tcplink(sock, addr):
  print('Accept new connection from %s:%s...' % addr)
  sock.send(b'Welcome!')
  while True:
    data = sock.recv(1024)
    time.sleep(1)
    if not data or data.decode('utf-8') == 'exit':
      break
    data_str = data.decode('utf-8')
    data_list = data_str.split(',')
    if len(data_list) == 3:
      do_some()
    else:
      do_other()
    sock.send(('processing, %s!' % s3).encode('utf-8'))

  sock.close()
if __name__ == '__main__':
  while True:
    #        :
    data, addr = s.accept()
    #         TCP  :
    t = threading.Thread(target=tcplink, args=(data, addr))
    t.start()
서버 가 완료 되 었 습 니 다.다음은 클 라 이언 트 client.py 를 실현 합 니 다.클 라 이언 트 는 매개 변 수 를 입력 하거나 파일 에서 파 라 메 터 를 읽 어 클 라 이언 트 에 게 요청 을 보 내 는 것 을 지원 합 니 다.

import socket
import sys

if __name__ == '__main__':
  param = sys.argv[1]
  c_list = []
  if param.endswith('txt'):
    with open(param, 'r') as file:
      for line in file.readlines():
        c_list.append(line.strip().encode('utf8'))
  else:
    c = param.encode('utf8')
    c_list.append(c)
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  s.connect(('127.0.0.1', 10001))
  print(s.recv(1024).decode('utf-8'))
  for data in c_list:
    s.send(data)
    print(s.recv(1024).decode('utf-8'))
  s.send(b'exit')
  s.close()
이렇게 두 개의 스 크 립 트 를 통 해 하 나 는 상주 프로 세 스 를 실현 하고 하 나 는 들 어 오 는 매개 변 수 를 실현 하면 외부 요청 을 계속 받 아들 일 수 있 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기