- 功能说明:一个小型客服服务系统包括客户端和服务端,客户端通过访问服务端来获取相关的服务,服务端对客户端的数据请求作出合理的回复
- 代码实现
- 服务器端代码实现:
import socket
def main():
tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_server_socket.bind(("", 7890))
tcp_server_socket.listen(128)
print("---tcp聊天器系统服务器---")
while True:
print("输入y开启服务器,输入n关闭服务器")
is_ = input("请输入要执行的操作:")
if is_ == "n":
break
if is_ == "y":
print("服务器已开启")
print("客户端请求中……")
new_client_server_socket,client_addr = tcp_server_socket.accept()
print("客户端请求成功,客户端的IP地址为%s,端口号为%d" % (client_addr[0], client_addr[1]))
print("回复exit可以退出当前客户端服务")
while True:
print("等待客户端输入请求……")
recv_data = new_client_server_socket.recv(1024).decode("utf-8")
print("客户端输入为%s" % recv_data)
if recv_data == "exit":
break
server_send = input("服务器回复为:")
new_client_server_socket.send(server_send.encode("utf-8"))
if server_send == "exit":
break
new_client_server_socket.close()
print("客户服务完毕,开始下一个客户端的服务")
print("服务器已关闭")
tcp_server_socket.close()
if __name__ == "__main__":
main()
import socket
def main():
print("---tcp聊天器系统客户端---")
print("输入字母y进入聊天系统,输入字母n推出聊天系统")
is_ = input("请输入要执行的操作:")
if is_ == "y":
print("客户端以开启")
while True:
tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_ip = input("请输入要链接的服务器ip:")
server_port = int(input("请输入要链接的端口:"))
tcp_socket.connect((server_ip,server_port))
print("连接服务器成功")
print("输入数字1开启服务请求,输入数字0退出服务")
server_temp = int(input("请输入服务数字:"))
if server_temp == 1:
print("服务会话开启,输入exit退出会话")
while True:
send_data = input("请输入要发送的数据:")
tcp_socket.send(send_data.encode("utf-8"))
if send_data == "exit":
break
print("等待服务器回复……")
recv_data = tcp_socket.recv(1024).decode("utf-8")
print("服务器回复为:%s" % recv_data)
if recv_data == "exit":
break
if server_temp == 0:
print("会话服务断开,输入y继续连接下一个服务器,输入n关闭客户端")
tcp_socket.send("exit".encode("utf-8"))
is__ = input("会话服务以断开,输入y继续连接下一个服务器,输入n关闭客户端,请输入要执行的操作:")
if is__ == "n":
break
elif is__ == "y":
tcp_socket.close()
continue
if is_ == "n" or is__ == "n":
print("客户端已关闭")
tcp_socket.close()
if __name__ == "__main__":
main()