版权声明:17602128911 https://blog.csdn.net/bus_lupe/article/details/86533842
服务端
import socket
phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
phone.bind(('127.0.0.1', 8080))
phone.listen(5) # 最多可以有几个电话连接
conn, addr = phone.accept() # 建立三次握手,拿到一个元组
conn.send('12345'.encode('utf-8'))
msg = conn.recv(1024) # 收消息
print('客户端发来的消息是%s' % msg)
conn.send(bytes(msg.upper())) # 发消息
conn.close() # 关闭三次握手
phone.close() # 关闭socket
客户端
import socket
phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
phone.connect(('127.0.0.1', 8080))
print(phone.recv(1024))
phone.send(bytes('hello', encoding='utf-8'))
data = phone.recv(1024)
print('收到服务端发来的消息%s' % data)
客户端、服务端循环发消息
tcp_server
from socket import *
ip_port = ('127.0.0.1', 8080)
back_log = 5
buff_size = 1024
# 创建服务
tcp_server = socket(AF_INET, SOCK_STREAM)
# 绑定端口
tcp_server.bind(ip_port)
# 设置连接数
tcp_server.listen(back_log)
# 等待客户端连接,建立双向连接
conn, addr = tcp_server.accept()
while True:
# 收消息
data = conn.recv(buff_size)
print('客户端发来的消息:%s' % data.decode(encoding='utf-8'))
# 发消息
conn.send(data.upper())
# 关闭与客户端的连接
conn.close()
# 关闭服务
tcp_server.close()
tcp_client
from socket import *
ip_port = ('127.0.0.1', 8080)
buf_size = 1024
# 创建客户端
tcp_client = socket(AF_INET, SOCK_STREAM)
# 向服务端发起连接请求,建立双向连接
tcp_client.connect(ip_port)
while True:
msg = input('>>')
# 发消息
tcp_client.send(msg.encode(encoding='utf-8'))
# 收消息
data = tcp_client.recv(buf_size)
print(data.decode(encoding='utf-8'))
# 关闭客户端
tcp_client.close()
服务端循环连接请求收发消息
tcp_server
from socket import *
ip_port = ('127.0.0.1', 8080)
back_log = 5
buff_size = 1024
# 创建服务
tcp_server = socket(AF_INET, SOCK_STREAM)
# 绑定端口
tcp_server.bind(ip_port)
# 设置连接数
tcp_server.listen(back_log)
while True:
# 等待新的客户端连接,建立双向连接
conn, addr = tcp_server.accept()
while True:
try:
# 收消息
data = conn.recv(buff_size)
print('客户端发来的消息:%s' % data.decode(encoding='utf-8'))
# 发消息
conn.send(data.upper())
except Exception:
break
# 关闭与当前客户端的连接
conn.close()
# 关闭服务
tcp_server.close()
tcp_client
from socket import *
ip_port = ('127.0.0.1', 8080)
buf_size = 1024
# 创建客户端
tcp_client = socket(AF_INET, SOCK_STREAM)
# 向服务端发起连接请求,建立双向连接
tcp_client.connect(ip_port)
while True:
msg = input('>>').strip()
if not msg: continue
# 发消息
tcp_client.send(msg.encode(encoding='utf-8'))
# 收消息
data = tcp_client.recv(buf_size)
print(data.decode(encoding='utf-8'))
# 关闭客户端
tcp_client.close()