socket¶
socket()¶
- class
socket.
socket
¶ Сокет соединение
# ipv4 udp sock = socket(AF_INET, SOCK_DGRAM) # unix socket sock = socket(AF_UNIX, SOCK_DGRAM) with socket.socket(AF_INET, SOCK_DGRAM) as sock: sock.bind(('127.0.0.1', 8888)) while True: sock.bind() # ipv4 tcp client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-
accept
()¶ Ожидает клиентов и возвращает кортеж данных по подключенным клиентам
client, addr = sock.accept() # client - socket # addr - ('127.0.0.1', 63333)
-
bind
(bind_param)¶ Привязываемся к указанному хосту
sock.bind(('127.0.0.1', 8888)) sock.bind('unix.sock')
-
close
()¶ Закрывает соединени
sock.close()
-
connect
()¶ Подсоединяется к серверу
sock.connect(('127.0.0.1', 8888)) sock.connect('unix.sock')
-
listen
(count)¶ Устанавливает размер очереди обработки
sock.listen(5)
-
recv
(size)¶ Блокирует интерпретатор, ожидая данные от клиента
result = sock.recv(1024) # b'message'
-
sendall
(bytes)¶ socket.sendall(b'GET / HTTP/1.0\r\nHost: www.ilnurgi.ru\r\n\r\n')
-
sendTo
(message, host)¶ Отправляет сообщение по хосту
sock.sendTo(b'message', ('127.0.0.1', 8888)) sock.sendTo(b'message', 'unix.sock')
-
setblocking
(block=True)¶ Включает/выключает блокирующий режим
sock.setblocking(True)
-
setsockopt
()¶ sock.setsockopt(SOL_SOCKET, SO_DROADCAST, 1) sock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
-
settimeout
(timeout)¶ Устанавливает таймаут для подключений
sock.settimeout(5)
-
"""
работа с блютуз
"""
import socket
address, services = socket.bt_obex_discover()
print(address, services)
# 00:12:d2:41:35:e4 {"OBEX Object Push":9}
MY_PC = "00:12:d2:41:35:e4"
address, services = socket.bt_obex_discover(MY_PC)
"""
отправка фотографии по БТ
"""
photo_path = 'photo.jpg'
address, services = socket.bt_obex_discover()
if u'OBEX Object Push' in services:
channel = services[u'OBEX Object Push']
socket.bt_obex_send_file(address, channel, photo_path)
"""
простой http server
"""
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 9004))
server_socket.listen()
while True:
client_connection, client_address = server_socket.accept()
request = client_connection.recv(1024)
print(request)
client_connection.sendall(b"HTTP/1.1 200 OK\n\nHello!")
client_connection.close()
"""
wsgi реализация
"""
client_connection, client_address = server_socket.accept()
request = client_connection.recv(1024)
response = application(request)
client_connection.sendall(response)
client_connection.close()