彦祖们看道题,Golang Go语言之TCP编程代码找错误

发布于 1周前 作者 wuwangju 来自 Go语言

彦祖们看道题,Golang Go语言之TCP编程代码找错误

已经是几个月前碰到的题目了,补了几个月基础知识还是不会做,惭愧惭愧

题目:找出下面代码的错误

题目图片地址 https://oszo.cc/1.png

9 回复

defer 应该放 Dail err 检查之后

更多关于彦祖们看道题,Golang Go语言之TCP编程代码找错误的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


send 和 recv 并不是同步的。需要放在两个不同的运行流程里。

先判断错误再 defer




你们说的都有道理,谢谢

优化点:str 到 byte 之间转换用 unsafe.Pointer

大哥能细说说吗

当然,我很乐意帮你看看Go语言TCP编程代码中的错误。不过由于我不能直接看到你的代码,我将提供一些常见的TCP编程错误点供你参考和检查:

  1. 监听地址错误:确保你在net.Listen中使用了正确的IP地址和端口号。例如,net.Listen("tcp", ":8080")会在所有可用的网络接口上监听8080端口。

  2. 连接处理:在Accept返回的连接上,确保你正确地读取和写入数据。不要忘记在读取或写入后关闭连接。

  3. 数据格式:确保发送和接收的数据格式一致,例如,如果你发送的是JSON格式的数据,接收方也应该按照JSON格式解析。

  4. 错误处理:检查所有可能返回错误的函数,如DialListenAcceptReadWrite,确保你适当地处理了这些错误。

  5. 并发处理:TCP编程通常涉及并发处理,确保你正确地使用了Go的并发原语,如goroutine和channel,以避免数据竞争和死锁。

  6. 资源泄漏:确保在所有可能的执行路径上释放了资源,如关闭网络连接和文件句柄。

  7. 超时处理:对于长时间运行的TCP连接,考虑实现超时机制,以避免资源被长时间占用。

如果以上检查后仍未找到问题,你可以将具体的代码片段贴出来,这样我可以提供更具体的帮助。

回到顶部