网络编程

# class A(object):
# pass
#
# class B(A):
# pass
#
# class C(B):
# pass
#
# class D(object):
# pass
#
# class E(D,C):
# pass
#
# class F(object):
# pass
#
# class G(F):
# pass
#
# class H(C,G):
# pass
#
# class Foo(E,H):
# pass
# print(E.mro())

'''

L(Foo + L(E) + L(H))
L(E) = E,D,C,B,A
L(H) = H,C,B,A,G,F
Foo = Foo +L(E) + L(F)
= E,D,C,B,A + H,C,B,A,G,F
= E,D,H,C,B,A,G,F

'''



import socket #插座,插排,穴

#创建服务端socket对象
server = socket.socket()

#绑定ip和端口

server.bind(('192.168.13.190',9999))#bind订装,捆绑,约束

#响应五个人
server.listen(8)

print("服务器端口准备开始接受客户端的链接")

#等带客户端来链接,如果没人来就傻傻的等待.
#conn 是哭护短和服务器连接的桥梁,服务端以后要通过该对象进行收发数据
#addr数客户端的地址信息
#阻塞,只有有客户端进行链接 ,则获取客户端链接然后开始进行通信,
conn, addr = server.accept()
print("已经有人连接上了客户端的信息:", conn, addr)


#通过对象去获取(客户端通过桥梁发过来的信息)
#1024*2 表示:服务端通过桥梁获取数据时,一次性最多拿1024个字节.
data = conn.recv(2048)

print("已经光明正大的发来消息了", data.decode("utf-8"))


#服务端通过桥梁给客户端回复了一个消息.
conn.send("what you what男".encode("utf-8"))

#与客户端断开链接(桥梁崩塌瓦解)
conn.close()

#关闭服务端的服务
server.close()







import socket
client = socket.socket()

#向客户端发起链接请求(桥梁)
# 阻塞, 去连接, 直到连接成功后才会继续走下去

client.connect(('192.168.13.190', 9999))#俩个值,ip地址 和端口号,放在一个元祖中

#链接上服务器后,向服务端发送消息
client.send('hello,男'.encode("utf-8"))

#客户端等待服务端将信息发送回来
data = client.recv(2048)
print(data.decode("utf-8"))

#关闭客户端
client.close()
原文地址:https://www.cnblogs.com/zzy7372/p/9579278.html