Skip to content

Commit 60cb06d

Browse files
committed
Modification des fichiers serveurs et client pour optimiser la communication TCP
1 parent 3091401 commit 60cb06d

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

src/Client.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"os"
1010
"path/filepath"
1111
"strconv"
12+
"strings"
1213
"time"
1314
)
1415

@@ -107,15 +108,15 @@ func main() {
107108
outfile := fmt.Sprintf("out/%v", filepath.Base(filename)) // ou nomme le fichier de sortir en fonction de celui d'entrée
108109
content := ""
109110
for {
110-
resultString, err := reader.ReadString('\n') //Là on attend la réponse du serveur (par le reader instancié plus tôt)
111+
resultString, err := reader.ReadString('#') //Là on attend la réponse du serveur (par le reader instancié plus tôt)
111112

112113
if err != nil { //dès qu'on a une erreur on arrete de recevoir
113114
fmt.Printf("Fin de traitement du serveur \n")
114115
break //on sort de la boucle
115116
}
116117

117118
//fmt.Printf("Réponse du serveur : %v \n ", resultString) DEBUG
118-
content += resultString //on incremente content avec les résultats récupérés à chaque passage dans le for
119+
content += strings.TrimSuffix(resultString, "#") //on incremente content avec les résultats récupérés à chaque passage dans le for
119120

120121
}
121122
fmt.Printf("Réception et traitement des données in : %s\n", time.Since(s))

src/Server.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ func handleConnection(connect net.Conn) {
227227

228228
var slice []elementGraph
229229
var noeuds []int
230+
var out string
230231
start := time.Now()
231232
for { //équivalent While true
232233
inputLine, err := connectReader.ReadString('\n') //on récupère la ligne envoyée par le client jusqu'au retour à la ligne
@@ -258,13 +259,22 @@ func handleConnection(connect net.Conn) {
258259
fmt.Printf("Dijkstra done in : %s\n", time.Since(start))
259260

260261
start = time.Now()
262+
out = ""
263+
//writer := bufio.NewWriter(connect)
261264
for letter, graph := range ways {
262265
for l, way := range graph {
263-
out := fmt.Sprintf("%v %v %v %v \n", letter, l, way, distances[letter][l]) // 1 2 [1 3 4 8 4 2] 56 //point de départ | point d'arrivé | liste des points par lesquels je passe | poids
264-
//fmt.Printf("Envoie de : %v", out) DEBUG
265-
io.WriteString(connect, fmt.Sprintf("%s", out))
266+
out += fmt.Sprintf("%v %v %v %v \n", letter, l, way, distances[letter][l]) // 1 2 [1 3 4 8 4 2] 56 //point de départ | point d'arrivé | liste des points par lesquels je passe | poids
267+
//fmt.Printf("Envoie de : %v", out) //DEBUG
268+
/*writer.WriteString(out)
269+
err := writer.Flush()
270+
if err != nil {
271+
fmt.Printf("%s", err)
272+
}*/
266273
}
267274
}
275+
276+
out += "#"
277+
io.WriteString(connect, fmt.Sprintf("%s ", out))
268278
fmt.Printf("Envoie des données en : %s\n", time.Since(start))
269279
}
270280

0 commit comments

Comments
 (0)