Может ли кто-нибудь помочь мне с этим кодом? Как я могу добавить код чата P2P в эту программу? Я хочу, чтобы иметь возможность общаться между двумя компьютерами по локальной сетиДобавьте код сокета Qt для этого приложения, чтобы включить чат между двумя ПК
import sys, os
import socket
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget,
QLineEdit, QFileDialog, QInputDialog, QFileDialog,QMessageBox, QMenuBar)
from PyQt5.QtGui import QIcon
from PyQt5.Qt import QPushButton, QTextEdit, QMessageBox
class myApp (QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.main_text = QtWidgets.QTextEdit(self)
self.send_box = QtWidgets.QLineEdit(self)
self.connect_btn = QtWidgets.QPushButton('Connect', self)
self.browse_btn = QtWidgets.QPushButton('Browse',self)
ip_add_box = QtWidgets.QLineEdit(self)
port_box = QtWidgets.QLineEdit(self)
self.main_text.setGeometry(25, 30, 360, 350)
self.send_box.setGeometry(25, 400, 360, 60)
ip_add_box.setGeometry(25, 530, 150, 30)
port_box.setGeometry(180, 530, 90,30)
self.connect_btn.setGeometry(25, 500, 70, 25)
self.browse_btn.setGeometry(100,500,70,25)
self.setGeometry(200,100,400,580)
self.setWindowTitle('My Application')
self.setWindowIcon(QIcon('icon.png'))
# CODE BLOCK FOR EVENTS
self.send_box.returnPressed.connect(self.sendData) # EnterPressed Event for SendBox LineEdit
self.connect_btn.clicked.connect(self.connectNet) # Socket Connect event for the connect Button
self.browse_btn.clicked.connect(self.BrowseFile) # Browse file connect event for Browse Button
self.show()
def sendData(self):
self.main_text.append(self.send_box.text())
self.send_box.clear()
def connectNet(self):
host = 'localhost'
port = 12345
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = (host, port)
print ("Connecting to %s port %s" % server_address)
sock.connect(server_address)
try:
message = "Test message. This will be echoed"
print ("Sending %s" % message)
sock.sendall(message)
# Look for the response
amount_received = 0
amount_expected = len(message)
while amount_received < amount_expected:
data = sock.recv(16)
amount_received += len(data)
print ("Received: %s" % data)
finally:
print ("Closing connection to the server")
sock.close()
def BrowseFile (self):
filePath = QtWidgets.QFileDialog.getOpenFileName(self)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = myApp()
sys.exit(app.exec_())
@eyllanesc Вы можете помочь с этим, пожалуйста? – Sabawoon
Исправлен очевидный код неправильного форматирования. –
проверить это: http://doc.qt.io/qt-5/qtnetwork-network-chat-example.html – eyllanesc