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

网站毕设给个网址兄弟

网站毕设,给个网址兄弟,网络优化策划书,东营港网上找了很多代码都是旧版协议的#xff0c;研究了很久终于弄清楚了 现在发个用新版协议写的服务端代码出来(这个代码是从网上旧版协议改过来的)最要就是握手协议和发送接受字符的方式变了# incodingutf-8import socketimport structimport hashlibimport threading,randomimp…网上找了很多代码都是旧版协议的研究了很久终于弄清楚了 现在发个用新版协议写的服务端代码出来(这个代码是从网上旧版协议改过来的)最要就是握手协议和发送接受字符的方式变了# incodingutf-8import socketimport structimport hashlibimport threading,randomimport sysreload(sys)sys.setdefaultencoding(utf-8)connectionlist {}def sendMessage(message):global connectionlistfor connection in connectionlist.values():print connectionbstr send_data(message)print bstrb connection.send(bstr)def deleteconnection(item):global connectionlistdel connectionlist[connectionitem]#接收客户端发送过来的消息,并且解包def RecvData(nNum,client):try:pData client.recv(nNum)if not len(pData):return Falseexcept:return Falseelse:code_length ord(pData[1]) 127if code_length 126:masks pData[4:8]data pData[8:]elif code_length 127:masks pData[10:14]data pData[14:]else:masks pData[2:6]data pData[6:]raw_str i 0for d in data:raw_str chr(ord(d) ^ ord(masks[i%4]))i 1return raw_str#打包发送数据给客户端def SendData(pData,client):if(pData False):return Falseelse:pData str(pData)token \x81length len(pData)if length 126:token struct.pack(B, length)elif length 0xFFFF:token struct.pack(!BH, 126, length)else:token struct.pack(!BQ, 127, length)pData %s%s % (token,pData)client.send(pData)return Truedef send_data(raw_str):back_str []back_str.append(\x81)data_length len(raw_str)if data_length 125:back_str.append(chr(data_length))else:back_str.append(chr(126))back_str.append(chr(data_length 8))back_str.append(chr(data_length 0xFF))back_str .join(back_str) raw_strreturn back_strclass WebSocket(threading.Thread):def __init__(self,conn,index,name,remote, path/):threading.Thread.__init__(self)self.conn connself.index indexself.name nameself.remote remoteself.path pathself.buffer def run(self):print Socket%s Start! % self.indexheaders {}self.handshaken Falsewhile True:if self.handshaken False:print Socket%s Start Handshaken with %s! % (self.index,self.remote)self.buffer self.conn.recv(1024)if self.buffer.find(\r\n\r\n) ! -1:header, data self.buffer.split(\r\n\r\n, 1)for line in header.split(\r\n)[1:]:key, value line.split(: , 1)headers[key] valueprint header:--headerheaders[Location] ws://%s%s %(headers[Host], self.path)self.buffer data[8:]key headers[Sec-WebSocket-Key]token self.generate_token(key)handshake \HTTP/1.1 101 Web Socket Protocol Handshake\r\n\Upgrade: webSocket\r\n\Connection: Upgrade\r\n\Sec-WebSocket-Accept:%s\r\n\Sec-WebSocket-Origin: %s\r\n\Sec-WebSocket-Location: %s\r\n\r\n\ %(token,headers[Origin], headers[Location])print handshakenum self.conn.send(handshake)print str(num)self.handshaken Trueprint Socket%s Handshaken with %s success! % (self.index,self.remote)#self.conn.send(\x00Welcome\xFF\n)bstr send_data(Welcome)print bstrself.conn.send(bstr)#SendData(\x00Welcome\xFF,self.conn)#sendMessage(Welcome, self.name !)else:self.buffer RecvData(8196,self.conn)if self.buffer:print rec:self.bufferif self.buffer:#s self.buffer.split(\xFF)[0][1:]s self.bufferif squit:print Socket%s Logout! % (self.index)sendMessage(self.name Logout)deleteconnection(str(self.index))self.conn.close()breakelse:print Socket%s Got msg:%s from %s! % (self.index,s,self.remote)sendMessage(self.name:s)self.buffer def generate_token(self, key):import base64nkeykey258EAFA5-E914-47DA-95CA-C5AB0DC85B11nkeybase64.b64encode(hashlib.sha1(nkey).digest())return nkeyclass WebSocketServer(object):def __init__(self):self.socket Nonedef begin(self):print WebSocketServer Start!self.socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)self.socket.bind((192.168.1.210,1234))self.socket.listen(50)global connectionlisti0while True:connection, address self.socket.accept()usernameaddress[0]newSocket WebSocket(connection,i,username,address)newSocket.start()connectionlist[connectionstr(i)]connectioni i 1if __name__ __main__:server WebSocketServer()server.begin()
http://wiki.neutronadmin.com/news/361094/

相关文章:

  • 有不收费的网站陕煤建设集团网站
  • 房山营销型网站建设网络推广长沙网络推广
  • 莱芜金点子招聘网安阳seo优化
  • 交互网站开发成都定制软件开发公司
  • 涿州规划建设局网站网站的制作视频
  • 有哪些推广网站移动端显卡
  • 网站域名要钱嘛网页设计总结报告
  • 企业微信小程序免费制作平台seowhy论坛
  • 网站一级域名和二级域名区别建设内部网站
  • asp.net视频网站模板下载html网页设计主题大全
  • 只做乡村旅游的网站网站建设名词解释与简答题
  • 吉安县规划建设局网站竞价推广代理
  • 贵阳电商网站建设洋桥网站建设公司
  • 昆明专业建站百度百科查询
  • 网络服务网站建设网站seo优化8888
  • google网站登录入口新开传奇网站新开网
  • iis下建立asp网站网站开发技术合同
  • 手机网站的域名工装公司和家装公司的区别
  • 免费简单网站唐山移动互联网开发
  • 河北建设集团官方网站网站后台补丁如何做
  • 做暖暖免费视频网站公司官网开发报价
  • 搭建源码下载站网站erp系统下载手机版
  • 个体营业执照可以做网站搞推广吗有了源码然后如何做网站
  • 济南智能网站建设流程旅游景点网站建设现状
  • 网站程序备份方法东莞网站推广哪些
  • 旅游网站模板大全wordpress调用插件吗
  • 毕设源码网站用ps做一份网站
  • 建设部网站查询通报wordpress怎么换语言包
  • 网站优化奉化网站关键词优化费用
  • seo网站结构app是基于什么开发的