没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
4页
Go语言网络编程/Socket、http GO语言和网络编程有关的包都在net包下,通过net包及其子包,可以实现各种协议编程、Socket编程、http编程、rpc编程等。 一、Socket编程 1、Dial函数 Go语言中 Dial() 函数用于创建网络连接,函数原型如下: func Dial(network, address string) (Conn, error) { var d Dialer return d.Dial(network, address) } 参数说明如下: network 参数表示传入的网络协议(比如 tcp、udp 等); address 参
资源详情
资源评论
资源推荐
Go语言(十六)网络编程语言(十六)网络编程/Socket、、http
Go语言网络编程语言网络编程/Socket、、http
GO语言和网络编程有关的包都在语言和网络编程有关的包都在net包下,通过包下,通过net包及其子包,可以实现各种协议编程、包及其子包,可以实现各种协议编程、Socket编程、编程、http编程、编程、rpc编程编程
等。等。
一、一、Socket编程编程
1、、Dial函数函数
Go语言中 Dial() 函数用于创建网络连接,函数原型如下:
func Dial(network, address string) (Conn, error) {
var d Dialer
return d.Dial(network, address)
}
参数说明如下:
network 参数表示传入的网络协议(比如 tcp、udp 等);
address 参数表示传入的 IP 地址或域名,而端口号是可选的,如果需要指定的话,以:的形式跟在地址或域名的后面即可。如
果连接成功,该函数返回连接对象,否则返回 error。
实际上,Dial() 函数是对 DialTCP()、DialUDP()、DialIP()、DialUnix() 函数的封装:
func DialTCP(net string, laddr, raddr *TCPAddr) (c *TCPConn, err error)
func DialUDP(net string, laddr, raddr *UDPAddr) (c *UDPConn, err error)
func DialIP(netProto string, laddr, raddr *IPAddr) (c *IPConn, err error)
func DialUnix(net string, laddr, raddr *UnixAddr) (c *UnixConn, err error)
在成功建立连接后,我们就可以进行数据的发送和接收,发送数据时使用连接对象 conn 的 Write() 方法,接收数据时使用
Read() 方法。
2、、Listen函数函数
net包下个Listen函数会监听一个地址,返回一个监听器对象。
func Listen(network, address string) (Listener, error) {
var lc ListenConfig
return lc.Listen(context.Background(), network, address)
}
3、、Socket客户端客户端/服务端服务端
通过net包下的Dial和Listen函数来实现一个Socket编程。
服务器端:
通过Listen函数监听端口,接收来自客户端的请求。
监听器的Accept()方法是阻塞的,接收不到消息就会一直等待。
使用for循坏持续监听,并发处理接收的请求。
package main
import (
"bufio"
"fmt"
"net"
"os"
)
func main() {
listener, _ := net.Listen("tcp", ":8888")
fmt.Println("开始监听...")
for{
conn, err := listener.Accept()//接收客户端发来的请求
if err!=nil{
fmt.Fprintln(os.Stdout,"错误:",err)
weixin_38717579
- 粉丝: 2
- 资源: 887
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- FT232驱动串口驱动FT232工业串口
- 什么是电气原理图入门以及学习电气原理图入门的意义
- 什么是buaa数据结构期中以及学习的意义
- 什么是python爱心代码高级以及学习python爱心代码高级的意义
- python_for_data_analysis_2nd_chinese_version-master.zip
- 作业-测试-23-24春.ipynb
- 最新Java面试题及答案(Java基础、设计模式、Java虚拟机(jvm))
- 频域上的知识蒸馏论文,对论文复现的环境配置,及mmrazor运行命令
- 动态规划(Dynamic Programming)详解:算法优化之道
- Debian安装和基本使用指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0