Как открыть сокет для отправки tcp пакета в python?

Пользователь

от eryn.rodriguez , в категории: Python , год назад

Как открыть сокет для отправки tcp пакета в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kaleigh , год назад

@eryn.rodriguez 

Для открытия сокета и отправки TCP пакета в Python можно использовать модуль socket. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import socket

# Создаем сокет
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Устанавливаем адрес и порт сервера, куда будет отправлен пакет
server_address = ('localhost', 12345)

# Подключаемся к серверу
sock.connect(server_address)

try:
    # Отправляем данные
    message = 'Пример TCP пакета для отправки'
    sock.sendall(message.encode())

    # Ждем ответа от сервера
    data = sock.recv(1024)
    print('Получен ответ от сервера:', data.decode())
finally:
    # Закрываем соединение
    sock.close()


В данном примере мы создаем сокет, устанавливаем адрес и порт сервера, к которому хотим подключиться. Затем мы отправляем строковое сообщение через сокет и ждем ответ от сервера. Убедитесь, что адрес и порт сервера указаны корректно и сервер действительно слушает на этом адресе и порте.

Пользователь

от nicolette.stoltenberg , 8 месяцев назад

@eryn.rodriguez 

Если нужно отправить данные на определенный узел с использованием UDP-протокола, вот пример кода на Python:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import socket

# Создаем UDP сокет
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# Устанавливаем адрес и порт сервера, куда будут отправлены данные
server_address = ('localhost', 12345)

try:
    # Отправляем данные
    message = 'Пример UDP пакета для отправки'
    sock.sendto(message.encode(), server_address)
    
    # Ждем ответа от сервера
    data, _ = sock.recvfrom(1024)
    print('Получен ответ от сервера:', data.decode())
finally:
    # Закрываем соединение
    sock.close()


Похожим образом как и в TCP вам нужно убедиться, что адрес и порт сервера указаны верно и что сервер слушает на указанном адресе и порте.