Python语言编程基础-网络编程.pptVIP

  • 8
  • 0
  • 约1.1万字
  • 约 69页
  • 2020-07-03 发布于湖南
  • 举报
接收命令行参数的代码 if len(sys.argv) 4: print([*]usage:%s server fromaddr toaddr % sys.argv[0]) sys.exit(1) server = sys.argv[1] #第1个参数是SMTP服务器 fromaddr = sys.argv[2]#第2个参数是发件人地址 toaddr = sys.argv[3]#第3个参数是收件人地址 定义邮件的内容 message = TO: %s From: %s Subject: 测试邮件 Hello ,这是一个简单的SMTP Email例子. % (toaddr,fromaddr) 定义auth_login()函数,用于登录邮件服务器,并发送邮件 def auth_login(): 当发送邮件时,服务器需要验证,则输入用户名密码方可发送邮件 print(输入用户名: ) username = input() password = getpass(输入密码: ) try: s = smtplib.SMTP(server) #连接到服务器 print(s.ehlo()) code = s.ehlo()[0] #返回服务器的特性 usesesmtp = 1 if not (200 = code =299): #在200到299之间都是正确的返回值 usesesntp = 0 code = s.helo()[0] if not (200 = code =299): raise SMTPHeloError(code,resp) if len(message) int(s.esmtp_features[size]): print(邮件内容太大。程序中断) sys.exit(2) if usesesmtp and s.has_extn(auth): #查看服务器是否支持认证 print(\r\n使用认证连接.) try: s.login(username,password) #登录服务器 except smtplib.SMTPException as e: print(认证失败: , e) sys.exit(1) else: print(服务器不支持认证,使用普通连接) s.sendmail(fromaddr,toaddr,message) #如果支持认证则输入用户名密码进行认证;不支持则使用普通形式进行传输 s.quit(); #断开连接 在主程序里调用auth_login()函数 if __name__ == __main__: auth_login() 打开命令窗口,切换到例10-7.py所在的目录下。然后执行如下的命令,运行程序 python 例10-7.py youremail@ youremail@ 10.2.3 基于UDP的Socket编程 1.sendto()函数 使用sendto()函数可以实现发送数据的功能,函数原型如下; s.sendto(data,(addr,port)) 参数说明如下: ? s,指定一个Socket句柄。 ? data,要传输数据。 ? addr,接收数据的计算机的IP地址。 ? port,接收数据的计算机的端口。 【例10-3】 import socket #创建UDP SOCKET s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) port = 8000 #服务器端口 host = 01#服务器地址 while True: msg = input()# 接受用户输入 if not msg: break # 发送数据 s.sendto(msg.encode(),(host,port)) s.close() 2.recvfrom()函数 使用recvf

文档评论(0)

1亿VIP精品文档

相关文档