Python клиент чат с формами

интернет программирование python чат

Делаю клиент чата для курсовой. Сервер уже написан другим человеком. Третий человек пишет формы.
Проблема в том, что мне нужен метод который один раз включает прием сообщений и второй который отправляет. Помогите реализовать. Что сделано сейчас мной:

сервер для теста:

import socket


Socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
Socket.bind(("127.0.0.1",81))
Socket.listen(100)


while True:
conn, adr = Socket.accept()
print "Connected", adr
data=conn.recv(1024)
if data:
print "Server recv DATA: "+data
conn.send(data.upper())
conn.close()



КЛИЕНТ:

'''
Client classes
@author: ivan
'''
import socket
from threading import Thread

class ClientInfo:
def __init__(self):
self.userName=""
self.passWord=""


class Client:

def __init__(self):
'Client init'
self.Socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.data=""
self.enableRecive=False
self.sendMessage=True
self.messageText=""

def Connect(self,ip,port):
'connect to ip and port, where ip string and port integer'
self.Socket.connect((ip,port))
print "Connect"

def Disconnect(self):
'connect to ip and port'
self.Socket.close()
print "Disconnect"

def Send(self,message):
'send message to server'
self.Socket.send(message)
print "Send"

def StartReceive(self,cizeOfPocket):
print "StartReceive "
if self.enableRecive==True:
print "self.enableRecive"
while self.enableRecive:
self.data=self.Socket.recv(cizeOfPocket)
print "Message: "+self.data
def Receive(self,cizeOfPocket):
print "Receive "
while True:
if self.enableRecive:
self.data=self.Socket.recv(cizeOfPocket)
else:
self.Send(self.messageText)

def StopReceive(self):
self.enableRecive=False

def GetReceivedData(self):
print self.data


receiver=Client()
receiver.Connect("127.0.0.1", 81)
receiver.enableRecive=True
Thread(target=receiver.Send,args=["Hello worlllld1"]).start()
receiver.StartReceive(1024)
Thread(target=receiver.StopReceive).start()
Thread(target=receiver.Send,args=["Hello worlllld2"]).start()
receiver.StartReceive(1024)
receiver.Disconnect()



Т.е. я хочу получить такое :


"Hello world1"
"Start receive"
"Hello world 2"

Ответы:
> Проблема в том, что мне нужен метод который один раз включает прием сообщений и второй который отправляет.
Не совсем понятно, чего хотите.
Метод который включает/отключает приём сообщений, я считаю, не нужен. Сообщения должны приниматься всегда. Например служебные сообщения от сервера могут прийти в любой момент.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.