Skip to content

Commit

Permalink
fix: close network connection
Browse files Browse the repository at this point in the history
  • Loading branch information
Mohammadreza Saberi committed Dec 9, 2023
1 parent b333682 commit f6df453
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions content/chapter 5/5.2-tcp-server-begginer.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ func (s *Server) start() error {
if err != nil {
return err
}
defer ln.Close()
// مقدار دهی listener
s.ln = ln
// با تابع acceptLoop اتصال های جدید به سرور را مدیریت میکنیم
Expand All @@ -64,6 +63,13 @@ func (s *Server) start() error {
return nil
}

// اینجا برای استاپ کردن سرور یک متد جدید تعریف میکنیم
func (s *Server) stop() {
if s.ln != nil {
s.ln.Close()
}
}

func (s *Server) acceptLoop() {
for {
// اتصال های موجود را تایید میکنیم متغییر conn را با اتصال مورد نظر مقدار دهی میکنیم
Expand Down Expand Up @@ -104,16 +110,21 @@ func (s *Server) readLoop(conn net.Conn) {
func main() {
// ساخت سرور
server := newServer(":3000")

//start the server
if err := server.start(); err != nil {
log.Fetal(err)
}

go func() {
// در ازای هر پیام مقادیر آن را چاپ میکنیم
for msg := range server.msgch {
fmt.Printf("recived new from connection(%s): %s\n", msg.from, msg.payload)
}
}()
// شروع سرور
log.Fatal(server.start())

// Run an infinite loop to keep the program running
select {}

}

Expand Down

0 comments on commit f6df453

Please sign in to comment.