1、用的是IDE的话,直接保存或ctrl+S就可以了。
2、如果你是使用python自带的GUI,也可以像上面的方法找到文件,但也可以另存为(saveas)py文件到自己的地址。
3、如果使用命令行,可以点击菜单“全选”、“复制”,到一个新建的txt文件中,然后保存txt文件,并将文件扩展名txt修改为py即可。
4、如果使用集成的开发环境,直接去C盘文件夹下可以找到相应的程序文件,它是自动保存的。
1.新建文件tcp_server.py,用于模拟server端。import socket
tcpServer = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建socket对象,走tcp通道
host = socket.gethostname() # 获取本地主机名
port = 1000 # 端口号
addr = (host, port)
tcpServer.bind(addr) # 绑定地址
tcpServer.listen(5) # 设置最大连接数,超过后排队
while True:
conn,addr = tcpServer.accept() # 建立客户端连接
print(conn)
data = conn.recv(1024) # 接收来自客户端的数据,小于1024字节
print(data)
msg = 'Hello Client'.encode('utf-8')
conn.send(msg) # 发送数据给客户端
conn.close() # 关闭连接
本地主机名也可以换成IP地址,如host = '192.168.1.100'
server 端需要一直运行,等待 client 端的连接,所以使用while True无限循环
发送的数据必须是bytes类型,所以字符串需要编码'Hello Client'.encode('utf-8'),编码后为bytes类型
2.新建文件tcp_client.py,用于模拟client端。
import socket
tcpClient = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建socket对象
host = socket.gethostname()
port = 1000
addr = (host, port)
tcpClient.connect(addr) # 连接服务,指定主机和端口号
data = b'\x01\x64\xff' # 报文数据,bytes类型
tcpClient.send(data) # 发送数据给服务端
msg = tcpClient.recv(1024) # 接收来自服务端的数据,小于1024字节
print(msg.decode('utf-8'))
tcpClient.close()
client 端的地址需与 server 端一致,否则会报错:
IP地址不一致,则会发送数据给其他服务器,可能会出现报错TimeoutError
端口号不一致,会出现报错ConnectionRefusedError
3.打开两个cmd窗口,一个为server端窗口,另一个为client端窗口。
运行顺序,先启动server,后启动client:
server端窗口,先执行命令python tcp_server.py;client端窗口,后执行命令python tcp_client.py 。
在平时工作中,有时我们需要将控制台输出保存到文件
缺点:只能保存到文件,但控制台无输出
将控制台输出的同时即时保存到文件
print 函数中的 file 参数, file=f ,输出到文件; file=sys.stdout ,输出到终端; flush=True ,即时刷新