내 컴퓨터에 서버를 설치하고 컴퓨터의 다른 프로세스를 도메인 소켓을 사용하여 서버에 연결하고 싶습니다. 다양한 파이썬 가이드를 살펴 봤지만 똑바로 대답 할 수없는 것 같습니다! 여기까지 내 코드가 있습니다.python으로 도메인 소켓을 사용하여 로컬 서버 설정?
클라이언트 :
import socket;
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM);
s.connect("8888")
서버 : 서버 실행시 다음과 같은 에러가 발생
import socket
HOST, PORT = 'host', 8888
listen_socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
listen_socket.bind((HOST, PORT))
listen_socket.listen(1)
print 'Serving HTTP on port %s ...' % PORT
while True:
client_connection, client_address = listen_socket.accept()
request = client_connection.recv(1024)
print request
http_response = """\
HTTP/1.1 200 OK
Hello, World!
"""
client_connection.sendall(http_response)
client_connection.close()
:
Traceback (most recent call last):
File "webServer.py", line 7, in <module>
listen_socket.bind((HOST, PORT))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
TypeError: argument must be string or read-only character buffer, not tuple
글쎄, 완전한 에러 스택은 코드에서이 에러를 생성하는 라인을 찾는 것보다 도움이되지만, 기본적으로 튜플의 값을 문자열 또는 읽기 전용 문자로 extrct해야한다는 것입니다 튜플을 인수로 넘겨주는 대신 버퍼를 사용하십시오 – glls
좋습니다, 전체 오류 스택을 포함하도록 편집했습니다 –
Unix 도메인 소켓에는 포트 번호가 없습니다. http://blog.eduardofleury.com/archives/2007/09/13; 유닉스 도메인 소켓을 원하지는 않지만 파이썬에는 HTTP 서버가있다. "SimpleHTTPServer"- http://www.linuxjournal.com/content/tech-tip-really-simple-http-server- python – TessellatingHeckler