Я хочу открыть клиентский сокет TCP в Python. Должен ли я проходить через все низкоуровневые вещи BSD create-socket-handle / connect-socket, или есть более простой однострочный способ?






Открыть сокеты в Python довольно просто. Вам действительно нужно что-то вроде этого:
import socket
sock = socket.socket()
sock.connect((address, port))
а затем вы можете send() и recv(), как и любую другую розетку
Скрученный весьма полезен для разработки переносимых сетевых программ любого типа на Python. Одним из его преимуществ является предоставление удобного уровня над низкоуровневыми API сокетов.
Twisted = излишество
ОК, этот код работал
s = socket.socket()
s.connect((ip,port))
s.send("my request\r")
print s.recv(256)
s.close()
Было довольно сложно понять это из документации модуля сокетов Python. Так что я приму ответ The.Anti.9.
Для справки в будущем, как правило, разумной практикой является использование параметра socket.recv () большего размера, чем 256 байт. Я часто видел 4096 используемых.
Да, хорошая идея junkforce. На самом деле мне было нужно прочитать строку текста, теперь я использую функцию makefile () для буферизации полученных данных, которая работает.
Вы забыли проверить возвращаемое значение send.
для будущих читателей: лучше использовать s.sendall (os per @ Jean-PaulCalderone комментарий)