Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
col3-bibtp2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Info604
col3-bibtp2
Commits
cda399e2
Commit
cda399e2
authored
Apr 13, 2020
by
pernelle
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
création de la fonction lireArmeeCOL3_s()
parent
4a767733
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
45 additions
and
7 deletions
+45
-7
communCOL3-TP2.c
communCOL3-TP2.c
+44
-6
communCOL3-TP2.h
communCOL3-TP2.h
+1
-1
No files found.
communCOL3-TP2.c
View file @
cda399e2
...
...
@@ -22,6 +22,7 @@
const
int
MATERIAUX_BALISTE
[
2
][
6
]
=
{{
5
,
2
,
1
,
1
,
1
,
2
},{
9
,
3
,
3
,
2
,
3
,
2
}};
/**
DEPRECATED
cette fonction lit une structure (armee) sur la socket (sock) et
retourne le nb octet recu
...
...
@@ -38,9 +39,9 @@ int lireArmeeCOL3(int sock, armee * monarmee) {
while
(
nbtotal
<
taille
)
{
nbrecu
=
recv
(
sock
,
(
char
*
)
monarmee
,
taille
,
0
);
nbrecu
=
recv
(
sock
,
(
(
char
*
)
monarmee
)
+
nbtotal
,
taille
,
0
);
if
(
nbrecu
<
0
)
{
p
error
(
"reception message [NOK]"
);
p
rintf
(
" --> socket[rlireArmeeCOL3] : [NOK] | nbrecu = %d
\n
"
,
nbrecu
);
}
else
nbtotal
+=
nbrecu
;
}
...
...
@@ -49,19 +50,55 @@ int lireArmeeCOL3(int sock, armee * monarmee) {
return
nbrecu
;
}
/**
cette fonction lit une structure (armee) sur la socket (sock) et
retourne le nb octet recu (securisé)
p.pernelle / d.wayntal - 2020
*/
int
lireArmeeCOL3_s
(
int
sock
,
armee
*
monarmee
,
int
logFlag
)
{
struct
sockaddr_in
addresIPClient
;
int
longAdresseIPClient
=
sizeof
(
addresIPClient
);
int
nbrecu
=
0
,
nbtotal
=
0
;
int
taille
=
sizeof
(
armee
);
if
(
getpeername
(
sock
,
&
addresIPClient
,
&
longAdresseIPClient
)
==
-
1
)
{
if
(
logFlag
)
printf
(
" --> socket[lireArmeeCOL3_s] : socket %d non connectée | lecture [NOK]
\n
"
,
sock
);
nbrecu
=-
1
;
}
else
{
if
(
logFlag
)
printf
(
" --> socket[lireArmeeCOL3_s] en cours | attendu taille = %d ...
\n
"
,
taille
);
while
(
nbtotal
<
taille
)
{
nbrecu
=
recv
(
sock
,
((
char
*
)
monarmee
)
+
nbtotal
,
taille
,
0
);
if
(
nbrecu
<
0
)
{
if
(
logFlag
)
printf
(
" --> socket[lireArmeeCOL3_s] : [NOK] | nbrecu = %d
\n
"
,
nbrecu
);
}
else
nbtotal
+=
nbrecu
;
}
if
(
logFlag
)
printf
(
" --> socket[lireArmeeCOL3_s] : [OK] | nbrecu = %d
\n
"
,
nbrecu
);
}
return
nbrecu
;
}
/*
cette procedure affiche l'armee d'un clan c'est à dire
l'ensemble de ses balistes
p.pernelle / d.wayntal - 20
19
p.pernelle / d.wayntal - 20
20
*/
void
afficheArmee
(
armee
monarmee
)
{
int
i
;
printf
(
"
%s"
,
"---- Armée du clan ----
\n
"
);
printf
(
"
============[ Armée du clan ] NB Baliste = %2d ============
\n
"
,
monarmee
.
nbbaliste
);
if
(
monarmee
.
nbbaliste
==
0
)
{
printf
(
" armee vide : aucune baliste fabriquee
\n
"
);
}
...
...
@@ -69,10 +106,11 @@ void afficheArmee(armee monarmee) {
{
for
(
i
=
0
;
i
<
monarmee
.
nbbaliste
;
i
++
)
{
printf
(
"
%s %d %s %s %s %d,%s"
,
" Balise "
,
i
,
" = "
,
printf
(
"
- Balise [%2d] = %s fabriqué par la forge %d
\n
"
,
i
,
monarmee
.
baliste
[
i
]
==
BLE
?
"BLE"
:
"BLO"
,
"Forge = "
,
monarmee
.
forge
[
i
],
"
\n
"
);
monarmee
.
forge
[
i
]
);
}
}
printf
(
"===========================================================
\n
"
);
}
communCOL3-TP2.h
View file @
cda399e2
...
...
@@ -39,7 +39,7 @@ typedef struct {
------------------------------------------------*/
int
lireArmeeCOL3
(
int
sock
,
armee
*
monarmee
);
int
lireArmeeCOL3_s
(
int
sock
,
armee
*
monarmee
,
int
logFlag
);
/* ------------------------------------------------
fonctions d'afichage
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment