Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
Mini projet madani
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Admin message
Arrêt du service - 13/06 de 07h30 à 08h00 - Mise à jour de sécurité
Show more breadcrumbs
MADANI Mohamed
Mini projet madani
Commits
4e014884
Commit
4e014884
authored
1 year ago
by
MADANI Mohamed
Browse files
Options
Downloads
Patches
Plain Diff
Upload New File
parent
1b71f92b
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
cl.py
+72
-0
72 additions, 0 deletions
cl.py
with
72 additions
and
0 deletions
cl.py
0 → 100644
+
72
−
0
View file @
4e014884
import
socket
import
sys
import
json
import
keyboard
# Liste pour stocker les touches pressées pour former un message
buffer
=
[]
# Nom d'utilisateur et destination du message
user
=
""
destination
=
""
# Socket du client
client_socket
=
None
# Fonction pour initialiser le client
def
initialize_client
():
global
user
,
destination
,
client_socket
user
=
input
(
"
Enter your username:
"
)
destination
=
input
(
"
Enter the destination username:
"
)
client_socket
=
socket
.
socket
(
socket
.
AF_INET
,
socket
.
SOCK_STREAM
)
server_address
=
(
'
localhost
'
,
int
(
sys
.
argv
[
1
]))
if
len
(
sys
.
argv
)
>
1
else
(
'
localhost
'
,
12345
)
try
:
client_socket
.
connect
(
server_address
)
client_socket
.
settimeout
(
1
)
print
(
"
Connected to server
"
)
setup_keyboard_shortcuts
()
start_message_receiving
()
except
ConnectionRefusedError
:
print
(
"
Connection refused. Please make sure the server is running.
"
)
# Fonction pour configurer les raccourcis clavier
def
setup_keyboard_shortcuts
():
keyboard
.
add_hotkey
(
'
ctrl+q
'
,
lambda
:
sys
.
exit
(
0
))
keyboard
.
on_press
(
on_key_event
)
# Fonction appelée lorsqu'une touche est pressée
def
on_key_event
(
e
):
if
e
.
name
==
'
m
'
and
e
.
event_type
==
'
down
'
and
keyboard
.
is_pressed
(
'
ctrl
'
):
buffer
.
clear
()
print
(
"
Enter your message:
"
)
keyboard
.
hook
(
capture_keys
)
# Fonction pour capturer les touches pressées et les ajouter au buffer
def
capture_keys
(
e
):
if
e
.
name
==
'
enter
'
and
e
.
event_type
==
'
down
'
:
keyboard
.
unhook
(
capture_keys
)
send_message
()
else
:
if
e
.
name
==
'
backspace
'
:
buffer
.
pop
()
else
:
buffer
.
append
({
"
space
"
:
"
"
,
"
backspace
"
:
""
}.
get
(
e
.
name
,
e
.
name
))
# Fonction pour envoyer le message
def
send_message
():
message
=
''
.
join
(
buffer
[
1
:])
data
=
json
.
dumps
({
"
user
"
:
user
,
"
destination
"
:
destination
,
"
message
"
:
message
})
client_socket
.
send
(
data
.
encode
(
'
utf-8
'
))
# Fonction pour commencer à recevoir les messages du serveur
def
start_message_receiving
():
while
True
:
try
:
res
=
client_socket
.
recv
(
1024
)
if
res
:
print
(
f
"
Received message:
{
res
.
decode
(
'
utf-8
'
)
}
"
)
except
socket
.
timeout
:
continue
if
__name__
==
"
__main__
"
:
initialize_client
()
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment