Junior — Middle
Дар кадом ҳолатҳо ва барои кадом мақсадҳо дар барномасозӣ сокетҳо истифода мешаванд?
sobes.tech AI
Ҷавоб аз AI
Дарсҳои барномасозӣ барои ташкил кардани муоширати шабакавӣ байни раванҷҳо истифода мешаванд, ки метавонанд дар як компютер ё дар компютерҳои гуногун ҷойгир бошанд. Дар Go, сӯкетҳо барои эҷоди барномаҳои мизоҷ-сервер, мубодилаи маълумот тавассути протоколҳои TCP ё UDP истифода мешаванд.
Ҳолатҳои асосии истифода:
- Иҷрои серверҳо ва мизоҷони шабакавӣ (масалан, сервери веб, чат, бозӣҳо).
- Мубодилаи маълумот байни системҳои тақсимшуда.
- Эҷоди протоколҳои худ дар болои TCP/UDP.
Масалан, эҷоди сервери TCP дар Go:
package main
import (
"fmt"
"net"
)
func main() {
ln, err := net.Listen("tcp", ":8080")
if err != nil {
panic(err)
}
defer ln.Close()
for {
conn, err := ln.Accept()
if err != nil {
fmt.Println("Хатои пайвастшавӣ:", err)
continue
}
go handleConnection(conn)
}
}
func handleConnection(conn net.Conn) {
defer conn.Close()
buf := make([]byte, 1024)
n, err := conn.Read(buf)
if err != nil {
fmt.Println("Хатои хондан:", err)
return
}
fmt.Println("Дастрас шуд:", string(buf[:n]))
conn.Write([]byte("Салом аз сервер!"))
}