首页 > 编程语言 >Go 网络编程(一),建立连接

Go 网络编程(一),建立连接

时间:2024-08-10 22:27:01浏览次数:8  
标签:string err 编程 TCP Listener error Go 连接 Conn

net库常用类型和函数

1.常用函数
Listen
Listen(network, laddr string) (Listener, error)
创建一个用于接受连接的监听器。
Dial
Dial(network, addr string) (Conn, error)
创建一个连接到指定地址的连接。
ListenTCP
ListenTCP(network, laddr *TCPAddr) (TCPListener, error)
创建一个 TCP 监听器。
DialTCP
DialTCP(network, laddr, raddr *TCPAddr) (TCPConn, error)
创建一个到指定 TCP 地址的连接。
LookupHost
LookupHost(host string) ([]string, error)
解析主机名到 IP 地址列表。
ResolveTCPAddr
ResolveTCPAddr(network, addr string) (*TCPAddr, error)
解析 TCP 地址字符串。
IP
IP
表示一个 IP 地址。
TCPAddr
TCPAddr
表示一个 TCP 地址。
UDPAddr
UDPAddr
表示一个 UDP 地址。


2.常用接口类型
Listener
Listener
接口类型,定义了 Accept 和 Close 方法。
Conn
Conn
接口类型,定义了 Read 和 Write 方法。
TCPConn
TCPConn
实现了 Conn 接口,并提供了 SetReadDeadline, SetWriteDeadline 等方法。
UDPConn
UDPConn
实现了 Conn 接口,并提供了 ReadFrom, WriteTo 等方法。

TCP服务端

简单实例,主要使用了net.Listen() 建立监听和监听返回的Listener接口进行接受和处理通信

package main

import (
	"fmt"
	"net"
)

func Handle(conn net.Conn) {
	fmt.Println(conn.RemoteAddr())
}

func main() {

	// 建立监听
	address := "127.0.0.1:8888"
	Listener, err := net.Listen("tcp",address)

	if err!=nil {
		fmt.Println("listening err:",err)
		return
	}
	defer Listener.Close()

	//接受并处理
	for {
		conn, err :=Listener.Accept()
		if err!=nil {
			fmt.Println("accept err :",err)
			continue
		}

		go Handle(conn)
	}
}

TCP客户端

标签:string,err,编程,TCP,Listener,error,Go,连接,Conn
From: https://www.cnblogs.com/iruan/p/18352875

相关文章

  • Redis之golang编程实战
    Redis介绍官网:Redis-TheReal-timeDataPlatformRedis可作为数据库、缓存、流引擎和消息代理的开源内存数据存储。被用在不计其数的应用中。Redis连续5年被评为最受欢迎的数据库,是开发人员、架构师和开源贡献者参与社区的中心。Redis是一个开源(BSD许可)的内存数据......
  • C编程题
    C语言利用基础知识实现编程题计算器3种写法C语言编程题数组C语言编程题字符串C语言编程题字符串比较的4种方法C语言编程题字符串连接3种方法C语言编程题字符串反转5种方法C语言编程题查找子字符串5种方法C语言编程题函数C语言编程题指针C语言编程题计算数组的平均值6种方......
  • Java中的异步编程模型与事件处理框架:从CompletableFuture到Reactive Streams
    Java中的异步编程模型与事件处理框架:从CompletableFuture到ReactiveStreams大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代软件开发中,异步编程和事件驱动架构变得越来越重要。它们能有效提高应用程序的性能和响应速度,特别是在处理高并发和I......
  • 【无人机通信】K-means聚类和粒子群优化最大限度地覆盖无人机辅助地面设备地面区域和
    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信或扫描文章底部QQ二维码。......
  • 四.mongodb问答
    目录四.mongodb4.1mongodb的优势有哪些缺点4.2什么是mongodb中的document4.3什么场景下会使用mongodb4.4mongodb中的分片是什么意思4.5什么时候需要分片:4.6如何将数据分布在不同的chunk上4.7mongodb支持哪些类型的索引4.8副本集有哪些角色,是做什么的主节点(Primary)从节点(S......
  • C--面向对象编程入门指南-全-
    C#面向对象编程入门指南(全)原文:BeginningC#object-orientedprogramming协议:CCBY-NC-SA4.0零、简介作为一名.NET培训师和首席程序员,我的经验是,大多数人在掌握C#语言的语法方面没有问题。困扰和挫败许多人的是面向对象编程方法和设计的更高层次的概念。更糟糕的是,大......
  • C--编程零基础入门指南-全-
    C#编程零基础入门指南(全)原文:C#ProgrammingforAbsoluteBeginners协议:CCBY-NC-SA4.0一、做好准备亲爱的读者,欢迎您开始学习编程之旅!电脑、平板电脑、手机和许多其他电子设备都是可编程的,会完全按照人类程序员告诉他们的去做。编程是一个完全基于逻辑的世界。在这方面,......
  • 使用go+gin编写日志中间,实现自动化收集http访问信息,错误信息等,自动化生成日志文件
    1.首先在logger包下点击查看代码packageloggerimport( "fmt" "io" "net/http" "os" "path" "runtime/debug" "time" "github.com/gin-gonic/gin" "github.com/sirupsen/logrus&q......
  • 小白爱上了Go之Go的基础配置问题
    在阅读了《Thewaytogo》和《Go语言实战》两本Go语言学习的入门书籍后,小白觉得自己的Go语言基础知识已经足够开始上手应用开发了。于是小白找到了一本《GoWeb编程》,在阅读这本书的过程中,自己动手开发GoWeb应用,并希望在阅读完之后,能够开发出一个功能丰富,性能优异的Web应用......
  • 基于django+vue社区疫情防控管理系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景近年来,全球公共卫生事件频发,尤其是新冠疫情的爆发,对社区管理和居民生活造成了巨大影响。面对疫情传播的复杂性和不确定性,传统的社区管理方......