socket
1,基于tcp的socket服务端和客户端
2,加入连接循环
3,加入通信循环
4,基于UDP协议的服务端与客户端
c:client
b: browser
1,基于tcp的socket服务端和客户端
服务端
import socket
(内置模块)
#第一个socket是模块名,第二个socket是类名
server = socket.socket(family = socket.AF_INET,type = socket.SOCK_STREAM)
#不传就代表tcp协议
server = socket.socket()
#绑定监听地址(bind)绑定的意思
server.bind(('127.0.0.1',8080))
#listen,监听,半连接池。强调:不是同时服务5个,而是一个个的来连接池的意思是排队的地方
server.listen(5)
#接受消息
#sock:当前连接对象,addr:客户端地址 IP + port(端口)
sock,addr = server.accept()
print(sock)
print(addr)
#1024 bytes
data = sock.recv(1024)
print(data)
sock.send(data.upper())
sock.close()#当前连接断
server.close#整个服务器断了
客户端
import socket
client = socket.socket()
client.connect(('127.0.0.1',8080))
client.send(b'sb')
#接受服务端返回的结果
data = sock.recv(1024)
client.close()
第二版本:
import socket
(内置模块)
#第一个socket是模块名,第二个socket是类名
server = socket.socket(family = socket.AF_INET,type = socket.SOCK_STREAM)
#不传就代表tcp协议
server = socket.socket()
#绑定监听地址(bind)监听的意思
server.bind(('127.0.0.1',8080))
#listen监听,半连接池。强调:不是同时服务5个,而是一个个的来连接池的意思是排队的地方
server.listen(5)
while True:
#接受消息
#sock:当前连接对象,addr:客户端地址 IP + port(端口)
sock,addr = server.accept()
print(sock)
print(addr)
#连接通信循环
while True:
try:
#1024 bytes
data = sock.recv(1024)
if len(data) == 0:
break
print(data)
sock.send(data.upper())
except Exception as e: