What's new

Closed Banyan GUI (Solved)

Status
Not open for further replies.

1neWay

Forum Expert
Elite
Joined
Feb 24, 2018
Posts
6,001
Solutions
30
Reaction
14,419
Points
3,439
** SOLVED **
 
Last edited:
Oo, mayroon akong ilang halimbawa ng code para sa server-side ng Banyan GUI. Ang mga halimbawa na ito ay sumusunod sa Banyan protocol at ginagamit ang Python bilang wika ng programming.

Una, kailangan nating mag-import ng ilang mga dependencies. Siguraduhin na na-install mo na ang mga sumusunod na module:

Python:
import socket
import threading
import json

Pagkatapos, kailangan nating mag-set ng mga default na mga variable. Ang HOST ay ipinapakita ang IP address ng server, at ang PORT ay ipinapakita ang port number na ginagamit para sa komunikasyon.

Python:
HOST = '127.0.0.1'
PORT = 5555

Pagkatapos ng mga default na mga variable, kailangan nating buuin ang server socket at tanggapin ang mga koneksyon ng client.

Python:
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((HOST, PORT))
server.listen()

clients = []
nicknames = []

Pagkatapos ng pag-buo ng server socket, kailangan din nating mag-set ng function na nakikinig sa mga bagong koneksyon ng client.

Python:
def broadcast(message):
    for client in clients:
        client.send(message)

Pagkatapos ng broadcast function, kailangan din nating mag-set ng function na nakikinig sa mga mensahe na ipinadala ng client.

Python:
def handle(client):
    while True:
        try:
            message = client.recv(1024)
            broadcast(message)
        except:
            index = clients.index(client)
            clients.remove(client)
            client.close()
            nickname = nicknames[index]
            nicknames.remove(nickname)
            broadcast(f'{nickname} left the chat!'.encode('ascii'))
            break

Ngayon, kailangan nating mag-set ng function na tumatanggap at naghihintay sa mga bagong koneksyon mula sa mga client.

Python:
def receive():
    while True:
        client, address = server.accept()
        print(f'Connected with {str(address)}')

        client.send('NICK'.encode('ascii'))
        nickname = client.recv(1024).decode('ascii')
        nicknames.append(nickname)
        clients.append(client)

        print(f'Nickname of client is {nickname}!')
        broadcast(f'{nickname} joined the chat!'.encode('ascii'))
        client.send('Connected to the server!'.encode('ascii'))

        client.send('Connected to the server!'.encode('ascii'))

        client_thread = threading.Thread(target=handle, args=(client,))
        client_thread.start()

Ngayon, tatawagin na lang natin ang receive() function upang simulan ang server.

Python:
receive()

Ito ay isang simpleng halimbawa ng code para sa server-side ng Banyan GUI. Ito ay nagbibigay-daan sa mga client na konektado sa server at magpadala ng mga mensahe sa iba pang mga client. Gayunpaman, kailangan mo pang magdagdag ng iba pang mga function o logic depende sa mga kinakailangan ng iyong application.

Pakatandaan na ang halimbawang ito ay naka-focus sa server-side at hindi kasama ang graphical user interface (GUI) ng Banyan. Ang GUI ay maaaring itayo sa client-side gamit ang mga library tulad ng Tkinter o PyQT.
 
Status
Not open for further replies.

Similar threads

Back
Top