서버에서 클라이언트로 TCP 서버로 통신하고 싶습니다. 이 질문에 관한 내 질문은 다른 스레드에서 클라이언트로 바이트를 보내는 일반적인 방법이 될 것입니다. 누군가가 웹에서 파이썬 스크립트를 호출 할 때. 이것을 달성 할 방법이 있습니까?파이썬 실행 중 명령으로 보내기
0
A
답변
1
클라이언트가 연결될 때 생성되는 스레드에 대한 멤버 변수를 정의 할 수 있습니다. 그런 다음이 변수에 쓰기 위해 잠금을 사용하십시오. 이 변수는 모든 스레드에 의해 공유됩니다 :
import threading
class ConnectedClients(threading.Thread):
used_ressources = list()
used_ressources_lock = threading.Lock()
def run(self, ressource_to_get):
if ressource_to_get in used_ressources:
raise Exception('Already used ressource:' + repr(ressource_to_get))
else:
can_access = self.used_ressources_lock.acquire(blocking=True, timeout=5)
if can_access:
self.used_ressources.append(ressource_to_get)
self.used_ressources_lock.release()
# Do something...
# You will have to acquire lock and remove ressource from
# the list when you're done with it.
else:
raise Exception("Cannot acquire lock")
이와 비슷한 것들을 찾으세요?
+0
예, 정확하게 고마워요! 어쨌든 이제는 Objective-C를 서버에 사용합니다. 더 안정적이고 제어하기 쉽기 때문에 더 많은 라이브러리, 서버 및 클라이언트가 같은 언어로 제공됩니다. – user1710004
귀하의 필요 사항에 대해 구체적으로 말씀해 주시겠습니까? 클라이언트가 브라우저를 사용하여 서버에 연결하는 경우 [Tornado] (http://www.tornadoweb.org/en/stable/)를 사용할 수 있습니다. 이미 쓰레드를 사용하여 코드를 개발했다면 도움이 될만한 샘플을 제공하십시오. –
어떻게 구체적으로 설명 할 수 있을지 모르겠다. 나는 파이썬으로 TCP 서버를 개발하고 싶다. (꽤 쉽다). 이 서버는 실행되는 스레드에 다른 프로세스에 대한 정보가 있어야합니다. 누군가 http를 사용하여 서버에서 다른 스크립트를 호출합니다. – user1710004