Найти - Пользователи
Полная версия: клиент сервер
Начало » Python для новичков » клиент сервер
1
kalashret
Нужно написать сервер, который будет принимать пост-запросы. Нужно использовать json.
Вопрос- не могу Понять какую библиотеку использовать, если нужно без сокетов, и как будет все происходить?
kalashret
я только начал изучение питона, поэтому прошу простить, что спрашиваю простые и понятные всем вещи.
я понимаю, что все происходит так:
1.клиент отправляет POSTом JSON-данные
2. Сервер чем-то(не через сокет-соединение) принимает запрос
3. декодит, парсит и JSON-данные кудато выводятся(это будет отдельная тема)
lorien
Как это не через сокет-соединение?
Не очень понял, что надо, если есть возможность использовать веб-сервер, то просто напишите веб-сервис в виде сайта.
s0rg
Просто json или json-rpc?
Посмотрите на Twisted или Tornado
kalashret
Пытаюсь написать самую простую пару клиент - сервер
вроде все верно, но не получается
import socket
import sys
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = 'localhost'
port = 8007
s.connect((host, port))
s.send('hello')  
data = s.recv(1000000) 
print 'received', data, len(data), 'bytes'
s.close()
но получаю такую ошибку

Traceback (most recent call last):
File “C:\WebServers\Serv\Client\client.py”, line 6, in <module>
s.connect((host, port))
File “C:\Python27\lib\socket.py”, line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: ╧юфъы■ўхэшх эх єёЄрэютыхэю,

сервер

import socket
import sys
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = 'localhost'
port = 8007
s.bind((host), (port))
s.listen(1)
conn, addr = s.accept()
data = conn.recv(1000000)
print 'client is at', addr , data
conn.send(data)
z = raw_input()
conn.close()

получаю

Traceback (most recent call last):
File “C:\WebServers\Serv\Server\server.py”, line 6, in <module>
s.bind((host), (port))
File “C:\Python27\lib\socket.py”, line 224, in meth
return getattr(self._sock,name)(*args)
TypeError: bind() takes exactly one argument (2 given)
kalashret
вопрос снят, прописал вместо localhost 127.0.0.1, заключил в двойные скобки и все заработало.
Изучаем далее
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB