Программирование Python Socket

Программирование сокетов - одна из самых фундаментальных технологий программирования компьютерной сети . Сокет является конечной точкой двусторонней линии связи между двумя программами, запущенными в сети. Клиент и сервер могут обмениваться данными записи и чтения из своих гнезд. У Python есть довольно простой способ начать с интерфейса сокета. Модуль сокетов Pythons обеспечивает доступ к интерфейсу сокетов BSD . Он доступен для всех современных Unix-систем: Windows, Mac OS X, BeOS, OS / 2 и, возможно, дополнительных платформ.

Программирование Socket Python имеет два раздела:

  1. Программа Socket Socket Python
  2. Программа Python Client Socket

 

Программа Server Socket Program

Программа Socket Socket представляет собой приложение на основе Python Console . Эта программа выступает в роли сервера и слушает запрос клиентов из порта № 8080.

server.bind((LOCALHOST, PORT))
server.listen(1)

Когда серверный сокет принимает запрос со стороны клиента, он считывает данные с клиента, а также записывает ответ на подключенную клиентскую программу.

Пример Python Server Socket Example (Server.py)

import socket
LOCALHOST = "127.0.0.1"
PORT = 8080
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((LOCALHOST, PORT))
server.listen(1)
print("Server started")
print("Waiting for client request..")
while True:
clientConnection,clientAddress = server.accept()
print("Connected clinet :" , clientAddress)
data = clientConnection.recv(1024)
print("From Client :" , data.decode())
clientConnection.send(bytes("Successfully Connected to Server!!",'UTF-8'))
clientConnection.close()

Программа Python Client Socket (Client.py)

Python Client Socket подключен к порту 8080 Программы Socket Socket Python и IP-адрес (127.0.0.1) серверного компьютера. Здесь мы приводим 127.0.0.1 , потому что Сервер и Клиент работают на одном компьютере. Если клиентская программа работает на другом компьютере, вы можете указать IP-адрес этой машины.

client.connect(SERVER, PORT)

Когда программа Python Client запустится, она подключится к программе Socket Python Socket Program и ожидает ввода с клиентской стороны. Когда вы вводите сообщение, оно будет отправлено на сервер, а затем вы также увидите ответные сообщения со стороны сервера.

Пример клиента Socket Python (client.py)

import socket
SERVER = "127.0.0.1"
PORT = 8080
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((SERVER, PORT))
client.sendall(bytes("This is from Client",'UTF-8'))
data = client.recv(1024)
print(data.decode())
client.close()

Как запустить эту программу?

Создайте программу Socket Socket Python (Server.py) и Python Client Socket Program (client.py) в двух отдельных файлах. Когда вы закончите кодирование, сначала вы должны запустить Python Server Socket Program из командной строки DOS (консоль), затем вы получите сообщение «Server Started ...» и «Ожидание запроса клиента» на экране DOS, где серверная программа.

Следующим шагом является запуск Python Client Socket Program из приглашения (консоли) DOS на том же компьютере или других компьютерах в той же сети. Когда вы запустите клиентскую программу, она установит соединение с сервером и отправит сообщение («Это от клиента») с клиентской стороны. После получения сообщения с клиентской стороны сервер отправляет сообщение клиенту «Успешно подключен к серверу!». Это ... теперь вы можете видеть, что клиентская программа и серверная программа обмениваются друг с другом.

Программирование асинхронного сокета (чтение-запись с обеих сторон)
В приведенном выше Пример:е вы можете просто отправить одно сообщение от клиента, а также только одно сообщение возврата с сервера. Если вы хотите неоднократно подключаться и связываться с клиентом и сервером, вы должны реализовать цикл while для отправки и получения данных друг с другом.

Пример Python Server Socket (Server.py)

import socket
LOCALHOST = "127.0.0.1"
PORT = 8080
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((LOCALHOST, PORT))
server.listen(1)
print("Server started")
print("Waiting for client request..")
clientConnection,clientAddress = server.accept()
print("Connected clinet :" , clientAddress)
msg = ''
while True:
in_data = clientConnection.recv(1024)
msg = in_data.decode()
if msg=='bye':
break
print("From Client :" , msg)
out_data = input()
clientConnection.send(bytes(out_data,'UTF-8'))
print("Client disconnected....")
clientConnection.close()

Пример Python Socket Client (client.py)

import socket
SERVER = "127.0.0.1"
PORT = 8080
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((SERVER, PORT))
client.sendall(bytes("This is from Client",'UTF-8'))
while True:
in_data = client.recv(1024)
print("From Server :" ,in_data.decode())
out_data = input()
client.sendall(bytes(out_data,'UTF-8'))
if out_data=='bye':
break
client.close()

 

Следующим шагом является запуск Python Client Socket Program из приглашения (консоли) DOS на том же компьютере или других компьютерах в той же сети. Когда вы запустите клиентскую программу, она установит соединение с сервером и отправит сообщение («Это от клиента») с клиентской стороны. После получения сообщения с клиентской стороны сервер ожидает ввода со стороны сервера. Затем вы можете ввести сообщение со стороны сервера и нажать клавишу ввода. В то же время клиент получает это сообщение и ожидает ввода с клиентской стороны. Снова вы можете ввести сообщение с клиентской стороны и нажать клавишу ввода. Теперь вы можете видеть, как сервер и клиент взаимодействуют неоднократно. Это сообщение вы можете продолжить, чтобы отправить «bye» с клиентской стороны.

 

 

Источник: net-informations.com

 

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 4,00 из 5)
Adblock
detector