socket.
AF_INET
IPv4 протокол
socket.
AF_UNIX
Юниксовый сокет
socket.
AF_INET6
IPv6 протокол
socket.
SOCK_DGRAM
UDP протокол
socket.
SOCK_STREAM
TCP протокол
socket.
SOL_SOCKET
socket.
SO_DROADCAST
socket.
SO_REUSEADDR
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()