我既有TCP服务器又有一个客户端,简单TCP服务器将仅接收传入的数据并进行打印,并且客户端将不断创建套接字连接并将数据循环发送到TCP服务器。
我得到的信息是,如果正确关闭了TCP连接,则此过程应继续进行而不会发生任何崩溃。
但是从客户端到服务器接收到一定数量的数据后,客户端崩溃并报错
total times data send: 16373
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x10d7594]
goroutine 1 [running]:
main.sendData()
/Users/apple/Desktop/Personal/umbrellaserver/src/tests/clinet.go:178
+0xb4
main.main()
/Users/apple/Desktop/Personal/umbrellaserver/src/tests/clinet.go:170
+0x2a
exit status 2
Run Code Online (Sandbox Code Playgroud)
Server.go
package main
import (
"bufio"
"fmt"
"net"
"sync"
)
var wg sync.WaitGroup
var count = 0
var timeX string = ""
var connQueue = make(chan string)
func main() {
tcpListner := startTCPConnection()
incomingTCPListener(tcpListner)
}
//startTCPConnection
func startTCPConnection() net.Listener {
tcpListner, tcpConnectonError := …Run Code Online (Sandbox Code Playgroud) 这是一个解压缩字符串的简单程序,我只是运行一个循环来显示内存使用量增加并且所使用的内存永远不会被释放。
即使8小时后内存也没有被释放
解压字符串包:https://github.com/Albinzr/lzGo - (简单的lz字符串算法)
我添加了一个要点链接,因为用于解压缩的字符串很大
源代码: 代码
我是新手,谁能告诉我如何解决内存问题?
20 月 15 日更新当达到内存限制时,应用程序仍然崩溃,因为它只使用 12mb - 15mb 这不应该发生!