コード例 #1
0
ファイル: client.py プロジェクト: destan19/pychat
	def get_user_info(self):
		obj={}
		obj['uid']=self.uid
		data=json.dumps(obj)
		send_packet(self.con,self.uid,9,data,len(data));
		command,content,content_len=rcv_packet(self.con)
		
		if content_len == -1:
			print 'connect server error.'
			return -1
		else:
			content_json=json.loads(content)
			return content_json		
コード例 #2
0
ファイル: client.py プロジェクト: destan19/pychat
	def send_msg_to_friend(self,con,uid,fid,msg):
		obj={}
		obj['uid']=uid
		obj['fid']=fid
		obj['msg']=msg
		data=json.dumps(obj)
		send_packet(con,uid,20,data,len(data));
		command,content,content_len=rcv_packet(con)
		print content
		if content_len == -1:
			print 'connect server error.'
			return 0
		else:
			content_json=json.loads(content)
			print content_json
コード例 #3
0
ファイル: client_console.py プロジェクト: destan19/pychat
def friend_list_request(con,uid):
	obj={}
	obj['uid']=uid
	data=json.dumps(obj)
	send_packet(con,uid,3,data,len(data));
	command,content,content_len=rcv_packet(con)
	print content
	if content_len == -1:
		print 'connect server error.'
		return 0
	if command!=3 or len(content)==0:
		return 0
	else:
		content_json=json.loads(content)
		print content_json
コード例 #4
0
ファイル: server.py プロジェクト: destan19/pychat
def rcv_and_handle_msg(con):
    handle = {
        1: login_request_handle,
        3: friend_list_request_handle,
        5: upload_user_image_handle,
        7: user_image_request_handle,
        9: user_info_request_handle,
        11: register_request_handle,
        20: chat_msg_handle,
    }
    command, content, content_len = rcv_packet(con)
    print "command=%d,content=%s,content_len=%d" % (command, content, content_len)

    if content_len == -1:
        print "client is offline"
        return None
    content_json = json.loads(content)
    return handle.get(command)(con, content_json)
コード例 #5
0
ファイル: client.py プロジェクト: destan19/pychat
	def update_friend_list(self):
		obj={}
		obj['uid']=self.uid
		self.friend_list=[]
		data=json.dumps(obj)
		send_packet(self.con,self.uid,3,data,len(data));
		command,content,content_len=rcv_packet(self.con)
		
		if content_len == -1:
			print 'connect server error.'
			return -1
		else:
			content_json=json.loads(content)
			self.friend_num=content_json['friend_num']
			for f in content_json['list']:
				friend=Friend(f['loginid'],f['nickname'],f['address'],f['phone_num'],
				f['sex'],f['signature'],f['mail'],f['online'],f['age'])
				self.friend_list.append(friend);
			return content_json
コード例 #6
0
ファイル: client_console.py プロジェクト: destan19/pychat
def get_user_image(con,uid):
	obj={}
	obj['uid']=uid
	data=json.dumps(obj)
	send_packet(con,uid,7,data,len(data));
	command,content,content_len=rcv_packet(con)

	if content_len == -1:
		print 'connect server error.'
		return 0
		
	if command !=8 or len(content)==0:
		return 0
	else:
		content_json=json.loads(content)
		decoded_img_data=base64.b64decode(content_json['img'])
		#for debug
		fd = open("clients/%d.png"%uid,"wb")
		fd.write(decoded_img_data)
		fd.close()
		return decoded_img_data;
コード例 #7
0
ファイル: client.py プロジェクト: destan19/pychat
	def login(self):
		obj={}
		obj['username']=self.uid
		obj['password']=self.password
		data=json.dumps(obj)
		send_packet(self.con,self.uid,1,data,len(data));
		command,content,content_len=rcv_packet(self.con)
		print content
		if content_len == -1:
			print 'connect server error.'
			return 0
		if  len(content)==0:
			return 0
		else:
			content_json=json.loads(content)
			
			if content_json['login_status'] == 'success':
				print 'login success........'
				return 1
			else:
				print 'login fail.............'
				return 0
コード例 #8
0
ファイル: client_console.py プロジェクト: destan19/pychat
def upload_user_image(con,uid):
	obj={}
	obj['uid']=uid
	fd=open("111.png","rb")
	img_data=fd.read()
	encoded_img_data=base64.b64encode(img_data)
	obj['img']=encoded_img_data

	fd.close()

	data=json.dumps(obj)
	print data
	send_packet(con,uid,5,data,len(data));
	command,content,content_len=rcv_packet(con)
	print content
	if content_len == -1:
		print 'connect server error.'
		return 0
	if command != 6 or len(content)==0:
		print 'command error'
		return 0
	else:
		content_json=json.loads(content)
		print content_json
コード例 #9
0
ファイル: client.py プロジェクト: destan19/pychat
def thread_rcv_msg(con,uid):
	while(1):
		command,content,content_len=rcv_packet(con)
		print 'client rcv',content