一.
1.服务器代码
import socket
# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取本地主机名
host = socket.gethostname()
port = 9999
# 绑定端口号
server_socket.bind((host, port))
# 设置最大连接数,超过后排队
server_socket.listen(5)
while True:
# 建立客户端连接
client_socket, addr = server_socket.accept()
print("连接地址: %s" % str(addr))
message = '欢迎访问服务器!' + "\r\n"
client_socket.send(message.encode('utf-8'))
while True:
# 接收小于 1024 字节的数据
data = client_socket.recv(1024)
if not data:
# 如果没有数据,跳出循环
break
else:
# 打印接收到的数据
print("收到消息:" + data.decode('utf-8'))
# 发送数据
client_socket.send(data)
# 关闭连接
client_socket.close()
server_socket.close()
2.客户端代码
import socket
# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取本地主机名
host = socket.gethostname()
port = 9999
# 连接服务,指定主机和端口
client_socket.connect((host, port))
# 接收小于 1024 字节的数据
msg = client_socket.recv(1024)
print(msg.decode('utf-8'))
while True:
# 用户输入信息
message = input('')
if message == 'exit':
break
# 发送数据
client_socket.send(message.encode('utf-8'))
# 接收反馈信息
msg = client_socket.recv(1024)
print(msg.decode('utf-8'))
# 关闭连接
client_socket.close()
二.
1.服务端代码
import socket
# 创建UDP socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 获取本地主机名
host = socket.gethostname()
port = 12345
# 绑定端口号
server_socket.bind((host, port))
# 连接客户端
client_address = ('localhost', 54321)
server_socket.connect(client_address)
print("等待接收消息...")
while True:
# 接收数据
data, address = server_socket.recvfrom(1024)
print("收到消息:", data.decode('utf-8'))
# 发送数据
message = '消息已收到!'
server_socket.send(message.encode('utf-8'))
# 关闭socket
server_socket.close()
2.客户端代码
import socket
# 创建UDP socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 获取本地主机名
host = socket.gethostname()
port = 54321
# 绑定端口号
client_socket.bind((host, port))
# 连接服务器
server_address = ('localhost', 12345)
client_socket.connect(server_address)
while True:
# 用户输入信息
message = input('请输入消息: ')
if message == 'exit':
break
# 发送数据
client_socket.send(message.encode('utf-8'))
# 接收反馈信息
data, server = client_socket.recvfrom(1024)
print('服务器回复:', data.decode('utf-8'))
# 关闭socket
client_socket.close()