服务端代码
import socket
def main():
# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP和端口
server_socket.bind(('127.0.0.1', 8888))
# 开始监听
server_socket.listen(5)
print("服务器已启动,等待客户端连接...")
while True:
# 接受客户端连接
client_socket, client_addr = server_socket.accept()
print("客户端{}已连接".format(client_addr))
while True:
# 接收客户端发送的数据
data = client_socket.recv(1024)
if not data:
break
print("收到来自{}的数据: {}".format(client_addr, data.decode()))
# 将数据发送回客户端
client_socket.send(data)
# 关闭客户端连接
client_socket.close()
print("客户端{}已断开".format(client_addr))
if __name__ == "__main__":
main()
客户端代码
import socket
def main():
# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务器
client_socket.connect(('127.0.0.1', 8888))
print("已连接到服务器")
while True:
# 输入要发送的数据
data = input("请输入要发送的数据:")
if not data:
break
# 发送数据到服务器
client_socket.send(data.encode())
# 接收服务器返回的数据
recv_data = client_socket.recv(1024)
print("收到来自服务器的数据: {}".format(recv_data.decode()))
# 关闭连接
client_socket.close()
print("已断开与服务器的连接")
if __name__ == "__main__":
main()
首先运行服务端代码,然后运行客户端代码。在客户端输入要发送的数据,服务端会将数据原样返回给客户端。