在python中的网络编程,即socket编程
tcp:
import socket
print('服务器运行了。。。。')
myfuwu = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
myfuwu.bind(('127.0.0.1', 8000))
while 1:
myfuwu.listen(5) #监听的客户端的数量,可自己定义数量
conn,addr = myfuwu.accept() #侦听并接收此套接字的链接
print(conn)
print(addr)
data = conn.recv(1024) #接收的内容的大小
print('客户端发来:',data.decode('utf-8'))
conn.close()
myfuwu.close
接收到的客户端的结果:
服务器运行了。。。。 <socket.socket fd=504, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0,
laddr=('127.0.0.1', 8000), raddr=('127.0.0.1', 60530)> #conn的内容 ('127.0.0.1', 60530) #addr,套接字的地址 客户端发来: 123
myfuwu = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
myfuwu.bind(('127.0.0.1', 8000))
如果想要不同电脑的通信,在这里把ip修改成电脑的IP地址即可,客户端也是修改成服务端的ip,
第一段的socket.AF_INET是固定格式,而第二个则是tcp的,要是udp则修改成
SOCK_DGRAM
客户端:
import socket
ipport = ('127.0.0.1', 8000)
back_log = 5
buffer_size = 1024
print('客户端开始运行。。。。')
while 1:
tcp_clent = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_clent.connect(ipport)
fasong = input("请输入你要发送的东西:")
tcp_clent.send(fasong.encode('utf-8'))
print('已经发送')
tcp_clent.close()
tcp是一对一的通信,如果客户端关闭,服务器也会报错关闭,如果想持续运行,可以添加try expect去捕捉异常,然后实现连续的接收客户端的连接。
import socket
print('服务器运行了。。。。')
while 1:
try:
myfuwu = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
myfuwu.bind(('127.0.0.1', 8000))
while 1:
myfuwu.listen(5) #监听的客户端的数量,可自己定义数量
conn,addr = myfuwu.accept() #链接到客户端
print(conn)
print(addr)
data = conn.recv(1024) #接收的内容的大小
print('客户端发来:',data.decode('utf-8'))
except:
print("服务器运行多一次")
conn.close()
myfuwu.close