当前位置: 首页 > news >正文

最好网站制作工具织梦网站优化教程

最好网站制作工具,织梦网站优化教程,淘宝网站建设需求分析,网页交互设计报价前言套接字(Sockets)是双向通信信道的端点。 套接字可以在一个进程内#xff0c;在同一机器上的进程之间#xff0c;或者在不同主机的进程之间进行通信#xff0c;主机可以是任何一台有连接互联网的机器。套接字可以通过多种不同的通道类型实现#xff1a;Unix域套接字在同一机器上的进程之间或者在不同主机的进程之间进行通信主机可以是任何一台有连接互联网的机器。套接字可以通过多种不同的通道类型实现Unix域套接字TCPUDP等。 套接字库提供了处理公共传输的特定类以及一个用于处理其余部分的通用接口。socket模块要创建套接字必须使用套接字模块中的socket.socket()函数该函数具有一般语法s socket.socket (socket_family, socket_type, protocol 0)参数描述socket_family它的值可以是AF_UNIX或AF_INET如前所述。socket_type它的值可以是SOCK_STREAM或SOCK_DGRAM。protocol这通常被省略默认为0。常用方法:序号方法描述1s.bind()此方法将地址(主机名端口号对)绑定到套接字。2s.recvfrom()此方法接收UDP消息返回值是一对(字节 地址) 其中字节是代表接收到的数据的字节对象而地址是发送数据的套接字的地址3s.sendto()此方法发送UDP消息将数据发送到套接字。该套接字不应连接到远程套接字因为目标套接字是由address指定的4s.close()此方法关闭套接字套接字对象上所有以后的操作都将失败。远端将不再接收任何数据(在清除排队的数据之后)。套接字在被垃圾回收时会自动关闭5s.gethostname()返回主机名返回一个字符串其中包含当前正在执行Python解释器的计算机的主机名。示例1服务器端#sever.pyimport sockets socket.socket(socket.AF_INET, socket.SOCK_DGRAM)host socket.gethostname()port 8088s.bind((host,port))try:while True:receive_data,addr s.recvfrom(1024)print(来自服务器 str(addr) 的消息:)print(receive_data.decode(utf-8))msg input(please input send to msg:)s.sendto(msg.encode(utf-8),addr)except:s.close()客户端#client.pyimport sockets socket.socket(socket.AF_INET,socket.SOCK_DGRAM)try:while True:host socket.gethostname()port 8088send_data input(please input msg:)s.sendto(send_data.encode(utf-8),(host,port))msg,addr s.recvfrom(1024)print(来自服务器 str(addr) 的消息:)print(msg.decode(utf-8))except:s.close()服务端示例客户端示例简易的UDP聊天实现了,下面我们来优化一下示例。示例2服务端#server.pyimport socketimport loggingdef main():s socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 创建socket对象addr (127.0.0.1, 9999)s.bind(addr) # 绑定地址和端口logging.info(UDP Server on %s:%s..., addr[0], addr[1])user {} # 存放字典{addr:name}while True:try:data, addr s.recvfrom(1024) # 等待接收客户端消息存放在2个变量data和addr里if not addr in user: # 如果addr不在user字典里则执行以下代码for address in user: # 从user遍历数据出来addresss.sendto(data 进入聊天室....encode(utf-8), address) # 发送user字典的data和address到客户端user[addr] data.decode(utf-8) # 接收的消息解码成utf-8并存在字典user里,键名定义为addrcontinue # 如果addr在user字典里跳过本次循环if EXIT.lower() in data.decode(utf-8):#如果EXIT在发送的data里name user[addr] #user字典addr键对应的值赋值给变量nameuser.pop(addr) #删除user里的addrfor address in user: #从user取出addresss.sendto((name 离开了聊天室...).encode(), address) #发送name和address到客户端else:print(%s from %s:%s %(data.decode(utf-8), addr[0], addr[1]))for address in user: #从user遍历出addressif address ! addr: #address不等于addr时间执行下面的代码s.sendto(data, address) #发送data和address到客户端except ConnectionResetError:logging.warning(Someone left unexcept.)if __name__ __main__:main()客户端#clinet.pyimport socketimport threadingdef recv(sock, addr):一个UDP连接在接收消息前必须要让系统知道所占端口也就是需要send一次否则win下会报错sock.sendto(name.encode(utf-8), addr)while True:data sock.recv(1024)print(data.decode(utf-8))def send(sock, addr):发送数据的方法参数sock定义一个实例化socket对象server传递的服务器IP和端口while True:string input()message name : stringdata message.encode(utf-8)sock.sendto(data, addr)if string.lower() EXIT.lower():breakdef main():主函数执行方法通过多线程来实现多个客户端之间的通信s socket.socket(socket.AF_INET, socket.SOCK_DGRAM)server (127.0.0.1, 9999)tr threading.Thread(targetrecv, args(s, server), daemonTrue)ts threading.Thread(targetsend, args(s, server))tr.start()ts.start()ts.join()s.close()if __name__ __main__:print(-----欢迎来到聊天室,退出聊天室请输入EXIT(不分大小写)-----)name input(请输入你的名称:)print(-----------------%s------------------ % name)main()支持多人的简易聊天室示例多个客户端通过一个服务器进行之间通信
http://www.yutouwan.com/news/113776/

相关文章:

  • 网站制作架构建设部网站证件查询
  • 徐州住房与城乡建设部网站wordpress显示作者的信息
  • 国外的有趣设计网站免费网页制作网站
  • 专业网站是指什么wordpress主题付费吗
  • 奈曼旗华水建设工程公司网站南宁360网
  • 网站建设模板研究广州网站建设电话咨询
  • 网站正在建设中 免费设计官网首页
  • 营销网站建设方案中国seo第一人
  • 网站建设初期的宣传深圳制作网站主页
  • 网站开发教学网站百度分享 wordpress
  • 吉林网站制作选择乐云seo江苏营销型网站策划
  • 网站主机 流量广州市城乡和建设局网站
  • 网站权重与排名浅谈建设公司网站账务处理
  • jsp网站开发实例.百度网盘创业网站建设规划书
  • 模板建站设计网站页面教案
  • 如何建立一个网站卖货网站建设图片排版
  • 宁波市海曙区建设局网站国家高新区网站建设
  • 中国工商做年报网站网站建设个人建设
  • 大庆建设中专网站网站开发服务器
  • 公司网站维护怎么做小程序有做门户网站
  • 电子 网站模板seo优化是怎么优化的
  • wordpress临时关闭站点电商网站流量统计
  • 学做网站后台开发网站建设步骤与时间表
  • 网站建立快捷方式如何用wordpress搭建网站
  • 深圳专业做网站技术制作网站源码
  • 河南省住房和城乡建设厅投诉网站solaris.wordpress
  • 做电商网站要多少钱竞价sem培训
  • 科技大学全国排名搜狗seo查询
  • 在线生成手机网站phpnow wordpress
  • 世纪兴网站建设找工程分包网站