Сокеты (простые примеры) — различия между версиями
Moiseevvi (обсуждение | вклад) |
Moiseevvi (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 3: | Строка 3: | ||
== UDP - half-duplex datagram == | == UDP - half-duplex datagram == | ||
=== Server === | === Server === | ||
+ | <code> | ||
from socket import * | from socket import * | ||
Строка 13: | Строка 14: | ||
if message == '': | if message == '': | ||
break | break | ||
− | + | </code> | |
=== Client === | === Client === | ||
+ | <code> | ||
from socket import * | from socket import * | ||
Строка 21: | Строка 23: | ||
− | + | </code> | |
== TCP - full-duplex stream == | == TCP - full-duplex stream == | ||
=== Server === | === Server === | ||
+ | |||
+ | <code> | ||
from socket import * | from socket import * | ||
Строка 34: | Строка 38: | ||
'jellojellojello' | 'jellojellojello' | ||
c[0].send(b"Hi") | c[0].send(b"Hi") | ||
− | + | </code> | |
=== Client === | === Client === | ||
+ | <code> | ||
from socket import * | from socket import * | ||
t = socket(AF_INET, SOCK_STREAM) | t = socket(AF_INET, SOCK_STREAM) | ||
Строка 49: | Строка 54: | ||
x.close() | x.close() | ||
+ | </code> | ||
[[категория:Лекции]] | [[категория:Лекции]] | ||
[[Категория:Сети]] | [[Категория:Сети]] |
Текущая версия на 08:16, 19 января 2021
Простые примеры по работе с UDP и TCP-сокетами для Python. Возможны незначительные вариации синтаксиса между 2.7 и 3 версией python.
Содержание
UDP - half-duplex datagram
Server
from socket import *
u = socket(AF_INET, SOCK_DGRAM)
u.bind(("0.0.0.0",1234)) // ip-port tuple to bind server
while 1:
message,sender= u.recvfrom(1024)
print 'Client' + str(sender) + ' said: ' + message
if message == '':
break
Client
from socket import *
u = socket(AF_INET, SOCK_DGRAM)
u.sendto("Hello world!", ("1.2.3.4",1234)) // ip-port tuple of server
TCP - full-duplex stream
Server
from socket import *
t = socket(AF_INET, SOCK_STREAM)
t.bind(("0.0.0.0",1234))
t.listen()
c = t.accept()
c
c[0].recv(200)
'jellojellojello'
c[0].send(b"Hi")
Client
from socket import *
t = socket(AF_INET, SOCK_STREAM)
t.connect(("1.2.3.4",1234))
socket.error: [Errno 111] Connection refused
t.send(b"jello")
t.recv(10)
while 1:
t.send(b"jello")
x.close()