| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package controller
- import (
- "github.com/gin-gonic/gin"
- "log"
- "net"
- )
- var clientTcpList = make(map[string]net.Conn)
- func NewTcpServer(tcpBaseServer string) {
- listener, err := net.Listen("tcp", tcpBaseServer)
- if err != nil {
- log.Println("Error listening", err.Error())
- return //终止程序
- }
- // 监听并接受来自客户端的连接
- for {
- conn, err := listener.Accept()
- if err != nil {
- log.Println("Error accepting", err.Error())
- return // 终止程序
- }
- var remoteIpAddress = conn.RemoteAddr()
- clientTcpList[remoteIpAddress.String()] = conn
- log.Println(remoteIpAddress, clientTcpList)
- //clientTcpList=append(clientTcpList,conn)
- }
- }
- func PushServerTcp(str []byte) {
- for ip, conn := range clientTcpList {
- line := append(str, []byte("\r\n")...)
- _, err := conn.Write(line)
- log.Println(ip, err)
- if err != nil {
- conn.Close()
- delete(clientTcpList, ip)
- //clientTcpList=append(clientTcpList[:index],clientTcpList[index+1:]...)
- }
- }
- }
- func DeleteOnlineTcp(c *gin.Context) {
- ip := c.Query("ip")
- for ipkey, conn := range clientTcpList {
- if ip == ipkey {
- conn.Close()
- delete(clientTcpList, ip)
- }
- if ip == "all" {
- conn.Close()
- delete(clientTcpList, ipkey)
- }
- }
- c.JSON(200, gin.H{
- "code": 200,
- "msg": "ok",
- })
- }
|