一、序言Golang的主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应用中,我们也可以看到Go中的net以及其subdirectories下的包均是“高频+刚需”,而TCP socket则是网络编程的主流,即便您没有直接使用到net中有关TCP Socket方面的接口,但net/http总是用到了吧,http底层依旧是用tcp sock
Simple Port Scanner with Golang Use Go‘s net package: net.Dial(network, address string) package main import ( "fmt" "net" ) func main() { _, err := ne
转载 2020-02-22 16:32:00
220阅读
2评论
Go 语言实现 TCP 通信的例子
原创 2022-11-25 11:43:52
221阅读
服务端源码package mainimport ( "fmt" "net" "os")/**处理异常*/func JtHandleError(err error, when string) { if err != nil { fmt.Println(when, "错误原因:", err) os.Exit(1) }}func main() { listene...
原创 2020-03-27 14:58:02
88阅读
Building a TCP Proxy Using io.Reader and io.Writer Essentially all input/output(I/O). package main import ( "fmt" "log" "os" ) // FooReader defines an
转载 2020-02-22 22:09:00
167阅读
2评论
1.客户端代码 package main import ( "bufio" "fmt" "net" "os" "strings" ) func main(){ conn,err:= net.Dial("tcp","127.0.0.1:8890") if err != nil { fmt.Printl
原创 2022-11-22 10:44:23
49阅读
golang epoll 实现 tcp serverlinux环境下的 epoll 概念 java 里面 bio 就是每次获得一个 客户端连接,就要开启一个线程处理,连接数太大,线程数也会很大耗费系统资源, golang也是一样,如果改用 每个连接对应一个协程,如果是百万tcp连接,同样会耗费大量的内存资源,所以 这个时候可以使用 epoll 来进行优化使用epoll 需要理解的概念epoll 有
文章目录1. 客户端和服务器模型2. 服务器端配置3. 客户端配置 1. 客户端和服务器模型socket: BSD UNIX的进程通信机制,通常也称作“套排字”,用于描述IP地址和端口,是一个通信链的句柄。socket 可以理解为 TCP/IP 网络的API,它定义了许多函数,程序员可以使用它来开发TCPIP网络的应用程序。计算机上运行对的应用程序通常通过“套接字"向网络发出请求或者应答网络请求
转载 2023-07-26 16:21:34
192阅读
前言平时在 Go 工程的开发中,几乎所有服务端的默认实现(例如:HTTP Server),都在处理请求时开启了新的 goroutine 进行处理。但从一开始就存在一个问题,那就是当一个请求被取消或超时时,所有在该请求上工作的 goroutine 应该迅速退出,以便系统可以回收他们正在使用的资源。因此 Go 官方在2014年,Go 1.7 版本中正式引入了 context 标准库。其主要作用是在 g
转载 2023-11-06 21:00:19
74阅读
文章目录前言一、互联网的层次结构1.应用层2.传输层3.网络层4.网络接口层5.图解二、tcp协议概述1.三次握手第一次握手第二次握手第三次握手2.tcp通常用来做什么?3.代码实现tcp通信三、udp协议概述1.udp通常用来做什么?2.代码实现四、粘包问题【及解决方法】1.为什么会粘包?2.解决方案3.编码解码函数总结GO GO GO ! 前言本文介绍的不是http.net包,仅仅介绍传统的
Gotcp长连接 为订阅打基础 server package main import ( "fmt" "log" "net" "strconv" "time" ) type Manger struct { Kv map[int]*net.TCPConn fl int } func (m *Mang ...
转载 2021-07-28 21:57:00
436阅读
tcp简单通信1 tcp初始服务端代码2 tcp初始客户端代码3 初始执行结果4. 多客户端对一个服务端博主微信欢迎交流初始代码没有加注释,初始代码只能跑一次。往下拉就会有代码注释 慢慢看哈。本文提供的源码都可以直接执行1 tcp初始服务端代码package mainimport ( "fmt" "net" "os")func TcpError(err error, w...
原创 2020-03-26 18:54:11
82阅读
127.0.0.1这个IP是不能与127.0.0.1以外的IP进行通讯的,因为127.0.0.1这个IP不经过网络接口,所以只能和本地通信,也就是只
原创 2023-05-03 03:23:11
210阅读
关于如何使用Go语言对接TCP接口,本文将详细记录解决该问题的各个过程,从环境准备到性能优化,以确保读者能够全面掌握这一技术。通过一系列的步骤与示例代码,帮助开发者更高效地进行TCP接口集成。 环境准备 在进行Go语言对接TCP接口的开发之前,首先需要准备好相应的环境。本项目建议使用以下技术栈: - Go 1.16及以上版本 - TCP协议基础知识 - 能够使用终端/命令行的能力 下面的四
原创 6月前
30阅读
用C#实现基于TCP协议的网络通讯 用C#实现基于TCP协议的网络通讯  TCP协议是一个基本的网络协议,基本上所有的网络服务都是基于TCP协议的,如HTTP,FTP等等,所以要了解网络编程就必须了解基于TCP协议的编程。然而TCP协议是一个庞杂的体系,要彻底的弄清楚它的实现不是一天两天的功夫,所幸的是在。net framework环境下,我们不必要去追究TCP协议底层的实现,一样可
Golang的主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应用中,我们也可以看到Go中的net以及其subdirectories下的包均是“高频+刚需”,而TCP socket则是网络编程的主流,即便您没有直接使用到net中有关TCP
转载 2017-03-04 16:17:00
363阅读
2评论
客户端代码 package main import ( "bufio" "fmt" "net" "os" "strings" ) func main() { // 连接服务端 conn, err := net.Dial("tcp", "127.0.0.1:8888") if err != nil { ...
转载 2021-10-03 10:15:00
54阅读
2评论
效果展示原理图解源码编写go服务端的编写package mainimport ( "fmt" "net")func processData(conn net.Conn) { //数据处理完之后关闭连接 defer conn.Close() for { buf := make([]byte, 1024) n, err := conn.Read(buf) if err != nil { fmt.Println("服务器数据处理异常 e...
原创 2021-11-08 14:06:37
224阅读
GO使用TCP长连接
原创 2023-11-01 15:00:59
224阅读
在进行 Go 语言开发时,我最近遇到了一个TCP连接管理的问题,主要是关于如何在多个goroutine中保留TCP连接的`conn`值。这个问题不仅影响了程序的稳定性,还让我的程序面临意外的断线和重连。接下来,我将详细记录这个问题的解决过程,包括问题背景、错误现象、根因分析以及最终的解决方案。 ### 问题背景 在进行网络编程中,经常需要使用TCP连接来进行数据的传输。在Go语言中,`net`
原创 7月前
72阅读
  • 1
  • 2
  • 3
  • 4
  • 5