5 changed files with 55 additions and 1 deletions
@ -0,0 +1,12 @@ |
|||||
|
import socket |
||||
|
import time |
||||
|
|
||||
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: |
||||
|
s.connect(('116.203.215.166', 1337)) |
||||
|
s.sendall('I am closing the write end, but I can still receive data'.encode()) |
||||
|
s.shutdown(socket.SHUT_WR) |
||||
|
while True: |
||||
|
data = s.recv(1024) |
||||
|
if not data: |
||||
|
break |
||||
|
print(data.decode()) |
||||
@ -0,0 +1,16 @@ |
|||||
|
import socket |
||||
|
import time |
||||
|
|
||||
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: |
||||
|
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) |
||||
|
s.bind(('0.0.0.0', 1337)) |
||||
|
s.listen() |
||||
|
conn, addr = s.accept() |
||||
|
with conn: |
||||
|
while True: |
||||
|
data = conn.recv(1024) |
||||
|
if not data: |
||||
|
break |
||||
|
print(data.decode()) |
||||
|
time.sleep(3) |
||||
|
conn.sendall('This will still be received by the client that has closed its write end'.encode()) |
||||
@ -0,0 +1,12 @@ |
|||||
|
import socket |
||||
|
import time |
||||
|
|
||||
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: |
||||
|
s.connect(('116.203.215.166', 1337)) |
||||
|
while True: |
||||
|
data = s.recv(1024) |
||||
|
if not data: |
||||
|
break |
||||
|
print(data.decode()) |
||||
|
time.sleep(3) |
||||
|
s.sendall('Message after server write end close'.encode()) |
||||
@ -0,0 +1,15 @@ |
|||||
|
import socket |
||||
|
|
||||
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: |
||||
|
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) |
||||
|
s.bind(('0.0.0.0', 1337)) |
||||
|
s.listen() |
||||
|
conn, addr = s.accept() |
||||
|
with conn: |
||||
|
conn.sendall('I am closing the write end, but I can still receive data'.encode()) |
||||
|
conn.shutdown(socket.SHUT_WR) |
||||
|
while True: |
||||
|
data = conn.recv(1024) |
||||
|
if not data: |
||||
|
break |
||||
|
print(data.decode()) |
||||
Loading…
Reference in new issue