2009-08-10 2 views
4

C/C++ API 대신 파이썬에서 내 응용 프로그램의 네트워크 관련 기능을 프로그래밍 할 것을 고려 중입니다. 네트워킹의 의도 된 사용은 네트워크를 통해 가능한 한 자주 플레이어 위치를 통과시키는 게임과 마찬가지로 응용 프로그램의 두 인스턴스간에 텍스트 메시지를 전달하는 것입니다.제안 필요 - 파이썬에서의 네트워킹 - 좋은 생각이십니까?

파이썬 소켓 모듈이 충분하고 성숙한 것처럼 보이지만 개발의 후반 단계에서 문제가 될 수있는 파이썬 모듈의 한계가 있는지 확인하고 싶습니다.

당신은 파이썬 소켓 모듈에 대해 어떻게 생각하십니까 :

  1. 는 생산 품질의 소프트웨어에 대한 충분한 신뢰성과 빠른가요?
  2. 내 앱에 문제가 될 수있는 알려진 제한 사항이 있습니까? 일반 클라이언트 - 서버 메시징 이외의 복잡한 네트워킹이 필요합니까? 사전에

감사합니다,

답변

1

폴 # 1에 대답하기 위해, 나는 다른 것들 중, 이브 온라인 (MMO 게임)이 자신의 서버 코드를 파이썬의 변형을 사용하는 것을 알고있다.

+0

* Eve는 Stackless Python을 사용합니다. – Kevin

1

이브 온라인에서 사용하는 파이썬은 StacklessPython (http://www.stackless.com/)이며, 나는 그들이 룰렛과 띄어 쓰기를 사용하여 스레딩을 구현하는 방법에 대해 사용하는 것으로 알고 있습니다. 하지만 파이썬 자체가 MMO와 같은 물건을 40k 사람들과 온라인으로 처리 할 수 ​​있기 때문에 나는 그것이 무엇이든 할 수 있다고 생각합니다.

이전 답변에 대한 질문에 대한 답변이 아닌이 답변과 답변이 아닙니다.

앨런.

3

파이썬은 C/C++에서 할 수있는 거의 모든 것을 수행 할 수있는 성숙한 언어입니다 (실제로 자신을 해 가길 원할 경우 직접 메모리 액세스조차도 가능).

매우 짧은 시간에 아름다운 코드를 작성할 수 있으며,이 코드는 처음부터 읽을 수 있으며 읽기 가능한 상태로 유지된다는 것을 알게 될 것입니다 (나중에 1 년 후에도 반환되는 코드는 알 수 있습니다).).

파이썬의 단점은 코드가 다소 느리다는 것입니다. "약간의 경우"에 "너무 느릴 수 있음"과 같은 "다소". 따라서 일반적인 접근법은 앱을 유지 관리 할 수 ​​있도록 Python에서 최대한 많이 작성하는 것입니다. 결국 속도 문제가 발생할 수 있습니다. 즉

C.

에서 응용 프로그램의 일부를 다시 생각하는 시간이 될 것입니다이 방법의 주요 장점은 다음과 같습니다

  1. 이미 실행중인 응용 프로그램이 있습니다. 파이썬에서 C로 코드를 변환하는 것은 처음부터 코드를 작성하는 것보다 훨씬 간단합니다.
  2. 이미 실행중인 응용 프로그램이 있습니다. 파이썬의 작은 부분을 C로 변환 한 후에는 그 작은 부분을 테스트해야하고, 변경하지 않은 나머지 부분은 사용할 수 있습니다.
  3. 가격을 미리 지불하지 마십시오. 파이썬이 충분히 빠르다면 선택적인 최적화를 할 필요가 없습니다.
  4. 파이썬은 C보다 훨씬 강력합니다. 파이썬의 모든 라인은 100 라인 또는 1000 라인의 C를 처리 할 수 ​​있습니다.
9

네트워킹 용 파이썬 엔진 인 Twisted을 확인하십시오. TCP, UDP, SSL/TLS, 멀티 캐스트, 유닉스 소켓, 많은 수의 프로토콜 (HTTP, NNTP, IMAP, SSH, IRC, FTP 및 기타 포함)에 대한 지원을 기본으로 제공합니다.