all["client request"] =  clientJob.name// append the client requests on map

Maps are Key: Value pair, in your case as the same key ie.  "client
request"  is being used, the latest value is overwriting the previous
value. Add a unique key for each request to store them in same map.

On Fri, Jan 3, 2020 at 12:44 PM snk <kabulo.n...@gmail.com> wrote:

> I am a beginner in Golang, This is a TCP server that receives requests and
> sends back a hello message to the client attached with the client's
> message(name)
>  *how can I fill those requests into a map without erasing the previous
> request?*
>  this is the code, the request is appended to the map but when the next
> comes, it replaces the current on.
>
>
>  // Goroutine and Socket programming TCP server
> //**************************************************
> //                 TCP
> //----------------------------------------------------------
>
> package main
>
> import (
>     "bufio"
>     "fmt"
>     "net"
>     "time"
> )
> // check if there is any error and send a message. but it's better to remove 
> panic later (it's not recommended to use it)
> //***********************************************************************************************************************
> func check(err error, message string) {
>     if err != nil {
>         panic(err)
>     }
>     fmt.Printf("%s\n", message)
> }
> // Create the client structure that contains the client's name and the 
> connection
> //****************************************************************************
>
> type ClientJob struct {
>     name string
>     conn net.Conn
>
> }
>
> // Create the function,the channel with type struct
> //*********************************************************
>
> func generateResponses(clientJobs chan ClientJob) {
>     for {
>         // Wait for the next job to come off the queue.
>         clientJob := <-clientJobs
>
>         // Do something thats keeps the CPU buys for a whole second.
>         for start := time.Now(); time.Now().Sub(start) < time.Second; {
>         }
>
>         // Send back the response.
>
>         clientJob.conn.Write([]byte("Hello, " + clientJob.name))
>
>         //clientJob:=make(chan ClientJob)
>         //name:=make(chan string)
>         //name:=<-clientJobs
>
>         all := make(map[string]string) // create the map
>         all["client request"] =  clientJob.name// append the client requests 
> on map
>         fmt.Println("All requests in the slice", all) // show all the 
> requests in the map
>
>
>
>     }
>
> }
>
> // The main function
> //***********************************
>
> func main() {
>     clientJobs := make(chan ClientJob) // declare the channel used in the 
> function above
>     go generateResponses(clientJobs)  // put the function in a goroutine
>
>     ln, err := net.Listen("tcp", ":8080") // connect to the port 8080, it can 
> be changed to any port if needed
>     check(err, "Server is ready.") // show the message that the server is 
> ready to receive
>     //fmt.Println(<-clientJobs)
>     // start checking the connection et receiving from the client and pass it 
> into a goroutine and send it via a channel ClientJobs<-ClientJob{name, conn}
>     for {
>         conn, err := ln.Accept()
>         check(err, "Accepted connection.")
>
>         go func() {
>             buf := bufio.NewReader(conn)
>
>             for {
>                 name, err := buf.ReadString('\n')
>
>                 if err != nil {
>                     fmt.Printf("Client disconnected.\n")
>                     break
>                 }
>
>                 clientJobs <- ClientJob{name, conn} // pass the name and conn 
> to the clientJobs channel
>
>             }
>
>
>         }()
>     }
> }
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/golang-nuts/2457abfa-04c9-476c-a2e4-b86e8e49e012%40googlegroups.com
> <https://groups.google.com/d/msgid/golang-nuts/2457abfa-04c9-476c-a2e4-b86e8e49e012%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>


-- 
Cheers
p.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAN9r%3DsxMH0e2_Y6zhg-hCHgOvXem2SLKGkpn2ToPTi7LEeDWFg%40mail.gmail.com.

Reply via email to