sockets, передача данных черех пк.

Josski Molodoi

Активный
Автор темы
182
83
Хочу реализовать некий скрипт на Питоне(тут язык особо не важен), но не могу подключиться через либу socket.
Помогите, я хз чё писать в бинде сервера

server:
import socket

server = socket.socket(
                      socket.AF_INET,
                      socket.SOCK_STREAM
                      )

[COLOR=rgb(184, 49, 47)]server.bind((КАКОЙ ТУТ ДОЛЖЕН БЫТЬ IP, КАКОЙ ТУТ ДОЛЖЕН БЫТЬ PORT))[/COLOR]

server.listen()

while True:
    user_socket, address = server.accept()
    user_socket.send("You're connected".encode("utf-8"))
    print(user_socket)


client:
import socket

client = socket.socket(
                      socket.AF_INET,
                      socket.SOCK_STREAM
                      )

client.connect(("???", ???))

while True:
    data = client.recv(2048) #recieve
    print(data.decode("utf-8"))
 

L00NEY

Участник
33
41
порт можешь любой прописать, главное что бы другое приложение его не слушало. Если вдруг пишешь порт, который слушает другое приложение, пайтон вернет ошибку. Будет ошибка - меняешь порт. Обычно все ставят порт 9090

IP в бинде сервера, можешь написать localhost, если тестируешь у своего компьютера. Как нужно будет подключиться с разных компов, в бинде сервера меняешь IP адрес на '' (он сам подхватит твой IP), а в клиенте подключаешься уже к своему IP(узнать через 2ip)


server:
import socket

server = socket.socket(
                      socket.AF_INET,
                      socket.SOCK_STREAM
                      )

server.bind(('', 9090)) # Для подключения с других компов
server.bind(('localhost', 9090)) # Локально


server.listen()

while True:
    user_socket, address = server.accept()
    user_socket.send("You're connected".encode("utf-8"))
    print(user_socket)


client:
import socket

client = socket.socket(
                      socket.AF_INET,
                      socket.SOCK_STREAM
                      )

client.connect(("ТВОЙ IP АДРЕС ЧЕРЕЗ 2IP", 9090)) # Подключение в глобальной сети
client.connect(("localhost", 9090)) # Подключение в локальной сети


while True:
    data = client.recv(2048) #recieve
    print(data.decode("utf-8"))
 

Josski Molodoi

Активный
Автор темы
182
83
порт можешь любой прописать, главное что бы другое приложение его не слушало. Если вдруг пишешь порт, который слушает другое приложение, пайтон вернет ошибку. Будет ошибка - меняешь порт. Обычно все ставят порт 9090

IP в бинде сервера, можешь написать localhost, если тестируешь у своего компьютера. Как нужно будет подключиться с разных компов, в бинде сервера меняешь IP адрес на '' (он сам подхватит твой IP), а в клиенте подключаешься уже к своему IP(узнать через 2ip)


server:
import socket

server = socket.socket(
                      socket.AF_INET,
                      socket.SOCK_STREAM
                      )

server.bind(('', 9090)) # Для подключения с других компов
server.bind(('localhost', 9090)) # Локально


server.listen()

while True:
    user_socket, address = server.accept()
    user_socket.send("You're connected".encode("utf-8"))
    print(user_socket)


client:
import socket

client = socket.socket(
                      socket.AF_INET,
                      socket.SOCK_STREAM
                      )

client.connect(("ТВОЙ IP АДРЕС ЧЕРЕЗ 2IP", 9090)) # Подключение в глобальной сети
client.connect(("localhost", 9090)) # Подключение в локальной сети


while True:
    data = client.recv(2048) #recieve
    print(data.decode("utf-8"))
Ошибка.
Мне на ВДС от Амазона надо передавать данные) не знаю как это реализовать, может другой способ есть?

[WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
 

L00NEY

Участник
33
41
Ошибка.
Мне на ВДС от Амазона надо передавать данные) не знаю как это реализовать, может другой способ есть?

[WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
ошибка в том, что сервер не ответил тебе. На вдс должен быть дан IP. Скорее всего ввел что то не так