client:(发送方)
import socket
def main():
# 创建套接字
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#tcp流
#连接服务器
server_ip = input("请输入要连接的服务器ip")
# server_port = int(input("请输入要连接的服务器端口"))
server_port = 7788
server_addr = (server_ip, server_port)
tcp_socket.connect(server_addr)
#发送数据/接受数据
send_data = input("请输入要发送的数据").encode("gbk")
tcp_socket.send(send_data)
#关闭套接字
tcp_socket.close()
if __name__ == "__main__":
main()
server:(接收方)
import socket
def main():
#创建套接字
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#绑定本地信息
tcp_server_socket.bind(("", 7788))
#让套机字由主动变为被动
tcp_server_socket.listen(128)#监听套接字负责等待新的客户端
print("wait...")
while True:#--循环为多个客户端服务
#等待连接
new_client_socket, client_addr = tcp_server_socket.accept()#用于产生新的套接字为客户端服务
print("new socket come!", client_addr)
while True:#--循环为一个客户端服务多次
#接收客户端发送古来的数据
#recv解堵塞有两种情况: 1.客户端发过来了数据 2.客户端调用了close关闭了服务
recv_data = new_client_socket.recv(1024).decode("gbk")
#判断用户是否关闭服务
if recv_data:#有数据
print(recv_data)
#显示回复信息
new_client_socket.send("ok".encode("gbk"))
else:#调用了close函数
break
#关闭套接字--关闭本次客户端的服务
new_client_socket.close()
print("为" + client_addr[0] + "服务完毕!")
#如果把监听套接字关闭了那么意味着不会再有新的客户端进来
tcp_server_socket.close()
if __name__ == "__main__":
main()
-源代码及可执行程序链接
链接:https://pan.baidu.com/s/1j1a7dcn7VQFTPh5A-EYLIg
提取码:5kn3