腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
Golang语言社区
Golang语言社区(www.Golang.LTD)专业分享Go语言基础、提高等最新最前沿动态。
专栏作者
举报
1903
文章
2782144
阅读量
585
订阅数
订阅专栏
申请加入专栏
全部文章
go
其他
游戏
编程算法
数据库
https
java
人工智能
api
linux
http
数据结构
云数据库 Redis
html5
网络安全
存储
github
javascript
json
开源
socket编程
系统架构
安全
sql
云数据库 SQL Server
微信
git
分布式
缓存
html
微服务
node.js
全栈
游戏开发
区块链
c++
python
windows
容器镜像服务
rpc
腾讯云测试服务
面向对象编程
打包
ide
udp
nginx
mongodb
网站
tcp/ip
渲染
容器
shell
架构设计
php
android
unix
文件存储
大数据
数据
对象存储
比特币
ios
c 语言
css
ajax
自动化
模型
数字货币
erlang
bash
scala
jquery
memcached
apache
bash 指令
ssh
rabbitmq
c#
lua
.net
xml
汇编语言
access
访问管理
命令行工具
数据加密服务
运维
正则表达式
单元测试
uml
ntp
小程序
编辑器
程序员
配置
同步
机器学习
mac os
ruby
oracle
搜索引擎
mapreduce
全站加速网络
kubernetes
爬虫
hashmap
ftp
kotlin
二叉树
aop
dubbo
敏捷开发
kernel
gcc
iis
func
io
it
动画
队列
服务器
工具
工作流
基础
框架
拖拽
音频
负载均衡
数据挖掘
tensorflow
objective-c
actionscript
react
硬件开发
nosql
postgresql
maven
负载均衡缓存
spring
专用宿主机
容器服务
日志服务
云数据库 MongoDB
SSL 证书
云推荐引擎
大数据可视交互系统
图像处理
电商
企业
underscore
serverless
devops
互联网金融
压力测试
spark
jdk
hive
erp
numpy
sql server
jdbc
asp
zookeeper
grep
zabbix
机器人
数据分析
数据处理
数据可视化
sas
网站建设
nat
openapi
nest
云计算
虚拟化
sdk
迁移
隐私计算
adapter
amazon
auto
binary
block
cube
db
dot
facebook
file
firefox
label
png
schema
stream
streamwriter
url
web
zip
编程语言
遍历
编码
操作系统
测试
后台
计算机
架构
脚本
局域网
客户端
可视化
连接
软件
视频
数据存储
图片资源
网络
系统
线程
压缩
语法
源码
搜索文章
搜索
搜索
关闭
抛弃websocket,前端直接打通信道,webRTC搭建音视频聊天
nat
api
socket编程
什么是WebRTC? 众所周知,浏览器本身不支持相互之间直接建立信道进行通信,都是通过服务器进行中转。比如现在有两个客户端,甲和乙,他们俩想要通信,首先需要甲和服务器、乙和服务器之间建立信道。甲给乙发送消息时,甲先将消息发送到服务器上,服务器对甲的消息进行中转,发送到乙处,反过来也是一样。这样甲与乙之间的一次消息要通过两段信道,通信的效率同时受制于这两段信道的带宽。同时这样的信道并不适合数据流的传输,如何建立浏览器之间的点对点传输,一直困扰着开发者。WebRTC应运而生 WebRTC是一个开源项目,旨在
李海彬
2018-03-27
7.2K
0
Go语言基于Socket编写服务器端与客户端通信的实例
go
socket编程
在golang中,网络协议已经被封装的非常完好了,想要写一个Socket的Server,我们并不用像其他语言那样需要为socket、bind、listen、receive等一系列操作头疼,只要使用Golang中自带的net包即可很方便的完成连接等操作~ 在这里,给出一个最最基础的基于Socket的Server的写法: package main import ( "fmt" "net" "log" "os" ) func main() {
李海彬
2018-03-27
1.3K
0
【Golang语言社区】前端编程-手机端调试利器 - 总结与实践
命令行工具
socket编程
一些调试工具 说起手机端调试,相比大家都不陌生。 由于手机浏览器没有像PC端浏览器一样有开发调试工具,所以一般手机端的调试都要借助于电脑,现在的调试方式通常有以下几种。 直接在chrome, firefox等开启模拟器调试简单直接,还能模拟网络等,但是仍然无法100%还原手机的真实情况。 实现一套pc调试面板 采用这种实现方式有weinre,weinre很早前就比较流行了,使用也比较广泛,运行后会在PC上生成一个像chrome开发工具一样的调试器。能对手机进行远程调试,能操作DOM,打印console输出等
李海彬
2018-03-27
1.6K
0
高性能IO模型浅析
socket编程
react
javascript
node.js
编程算法
服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型。 (2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。 (3)IO多路复用(IO Multiplexing):即经典的Reactor设计模式,有时也称为异步阻塞IO,Java中的Selector和Linux中的epoll都是这种模型
李海彬
2018-03-27
780
0
几种服务器端IO模型的简单介绍及实现(上)
编程算法
socket编程
一些概念: 同步和异步 同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发I/O操作并等待或者轮询的去查看I/O操作是否就绪,而异步是指用户进程触发I/O操作以后便开始做自己的事情,而当I/O操作已经完成的时候会得到I/O完成的通知。 阻塞和非阻塞 阻塞和非阻塞是针对于进程在访问数据的时候,根据I/O操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作函数的实现方式,阻塞方式下读取或者写入函数将一直等待,而非阻塞方式下,读取或者写入函数会立即返回一个状态值。 服务器端几种模型: 1、
李海彬
2018-03-27
878
0
Go语言中Socket通信TCP服务端
go
socket编程
1、用法: (1)定义远程IP地址。使用net.ResolveTCPAddr()方法,定义一个TCP地址,做为本机监听地址。 (2)使用net.ListenTCP("tcp",localAddress)方法开始监听,并返回tcpListener对像。 (3)使用tcpListener.AcceptTCP方法进行接受连接。返回:net.TCPConn对像。 (4)对net.TCPConn对像进行读写操作。 (5)关闭连接。 2、代码: package main import (
李海彬
2018-03-26
2.4K
0
高性能网络编程7--tcp连接的内存使用
socket编程
当服务器的并发TCP连接数以十万计时,我们就会对一个TCP连接在操作系统内核上消耗的内存多少感兴趣。socket编程方法提供了SO_SNDBUF、SO_RCVBUF这样的接口来设置连接的读写缓存,linux上还提供了以下系统级的配置来整体设置服务器上的TCP内存使用,但这些配置看名字却有些互相冲突、概念模糊的感觉,如下(sysctl -a命令可以查看这些配置): net.ipv4.tcp_rmem = 8192 87380 16777216 net.ipv4.tcp_wmem = 8192 65536
李海彬
2018-03-23
1.4K
0
Go语言基于Socket编写服务器端与客户端通信的实例
go
socket编程
在golang中,网络协议已经被封装的非常完好了,想要写一个Socket的Server,我们并不用像其他语言那样需要为socket、bind、listen、receive等一系列操作头疼,只要使用Golang中自带的net包即可很方便的完成连接等操作~ 在这里,给出一个最最基础的基于Socket的Server的写法: package main import ( "fmt" "net" "log" "os" ) func main() {
李海彬
2018-03-23
2.1K
0
几种服务器端IO模型的简单介绍及实现
编程算法
socket编程
一些概念: 同步和异步 同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发I/O操作并等待或者轮询的去查看I/O操作是否就绪,而异步是指用户进程触发I/O操作以后便开始做自己的事情,而当I/O操作已经完成的时候会得到I/O完成的通知。 阻塞和非阻塞 阻塞和非阻塞是针对于进程在访问数据的时候,根据I/O操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作函数的实现方式,阻塞方式下读取或者写入函数将一直等待,而非阻塞方式下,读取或者写入函数会立即返回一个状态值。 服务器端几种模型: 1、
李海彬
2018-03-23
1.3K
0
Go语言TCP Socket编程--2
go
socket编程
在Server端我们通过Conn的SetReadDeadline方法设置了10微秒的读超时时间,Server的执行结果如下: $go run server4.go 2015/11/17 14:21:17 accept a new connection 2015/11/17 14:21:27 start to read from conn 2015/11/17 14:21:27 conn read 0 bytes, error: read tcp 127.0.0.1:8888->127.0.0.1:609
李海彬
2018-03-23
4.1K
0
Go语言TCP Socket编程--1
go
socket编程
Go语言TCP Socket编程 Golang的 主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应用中,我们也可以看到Go中的net以及其subdirectories下的包均是“高频+刚需”,而TCP socket则是网络编程的主流,即便您没有直接使用到net中有关TCP Socket方面的接口,但net/http总是用到了吧,http底层依旧是用tcp socket实现的。 网络编程方面,我们最常用的就是tcp socket编程了,在posix
李海彬
2018-03-23
2.4K
0
Go语言实现socket实例
go
socket编程
用golang不用他的net包还有什么意义,这里提供一个测试代码: server.go 服务端: package main import ( "fmt" "log" "net" "bufio" ) func handleConnection(conn net.Conn) { data, err := bufio.NewReader(conn).ReadString('\n') if err != nil { log.Fatal("get cli
李海彬
2018-03-23
720
0
socket编程小问题:地址已经被使用——Address already in use
socket编程
c 语言
很多socket编程的初学者可能会遇到这样的问题:如果先ctrl+c结束服务器端程序的话,再次启动服务器就会出现Address already in use这个错误,或者你的程序在正常关闭服务器端socket后还是有这个问题。正如下面的这段简单的socket程序。 server.c #include <sys/types.h> #include <sys/socket.h> #include <stdio.h> #include <netinet/in.h> #include <arpa/i
李海彬
2018-03-23
2.7K
1
网络后台开发面试题
编程算法
socket编程
1.C++模板的作用。 将算法与具体对象分离,与类型无关,通用,节省精力 2.socket编程,如果client断电了,服务器如何快速知道??? 有以下几个技术: 使用定时器(适合有数据流动的情况); 使用socket选项SO_KEEPALIVE(适合没有数据流动的情况); 3.fork()一子进程程后 父进程癿全局变量能不能使用??? fork后子进程将会拥有父进程的几乎一切资源,父子进程的都各自有自己的全局变量。不能通用,不同于线程。对于线程,各个线程共享全局变量。 4.4G的long型整数中
李海彬
2018-03-23
1.5K
0
高性能IO模型浅析
socket编程
服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型。 (2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。 (3)IO多路复用(IO Multiplexing):即经典的Reactor设计模式,有时也称为异步阻塞IO,Java中的Selector和Linux中的epoll都是这种模型
李海彬
2018-03-23
1.1K
0
几种服务器端IO模型的简单介绍及实现(上)
编程算法
socket编程
一些概念: 同步和异步 同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发I/O操作并等待或者轮询的去查看I/O操作是否就绪,而异步是指用户进程触发I/O操作以后便开始做自己的事情,而当I/O操作已经完成的时候会得到I/O完成的通知。 阻塞和非阻塞 阻塞和非阻塞是针对于进程在访问数据的时候,根据I/O操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作函数的实现方式,阻塞方式下读取或者写入函数将一直等待,而非阻塞方式下,读取或者写入函数会立即返回一个状态值。 服务器端几种模型: 1、
李海彬
2018-03-23
956
0
selec/poll中的读写事件和epoll中的读写事件
socket编程
linux
在Linux网络编程中,常常使用select和poll来做事件触发,监听socket的读写状态,然后进行读写操作。现在新的linux内核中,增加了epoll事件触发机制,具有更高的性能和更好的设计理念,可以用它来完全代替select和poll。相比于select,epoll最大的好处在于它不会随监听fd数目的增长而降低效率。因为在内核总的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件中有这样的声明: [cpp] view pl
李海彬
2018-03-22
3K
0
Linux下socket双向通信
linux
socket编程
linux下的socket与windows下的类似,就是少一个初始化的过程。 服务端 客户端 1 创建socket 1 创建socket 2 绑定 2 连接 3 监听 4 接受 发送与接受消息,客户端与服务端都是用的recv与send,在使用完成后记得close,以释放端口资源。 下面是服务端 [cpp] view plain copy #include <stdio.h> #includ
李海彬
2018-03-22
2.2K
0
Go语言中Socket通信之Tcp客户端
go
socket编程
1、用法: (1)定义远程IP地址。使用net.ResolveTCPAddr()方法,定义一个TCP地址,做为目标连接地址。 (2)调用net.DialTCP("tcp",nil,remoteAddress) 方法,建立与remoteAddress的连接。这里的三参数分别是:协议名、本地IP、远程IP (3)可以学着调用连接对像中的一些常用方法。用于学习。 (4)试着写入一些消息。比如模拟发送请求响应头的内容。使用:conn.Write([]byte("HEAD / HTTP/1.0\r\n\r\n
李海彬
2018-03-20
1.2K
0
Go语言中Socket通信TCP服务端
go
socket编程
1、用法: (1)定义远程IP地址。使用net.ResolveTCPAddr()方法,定义一个TCP地址,做为本机监听地址。 (2)使用net.ListenTCP("tcp",localAddress)方法开始监听,并返回tcpListener对像。 (3)使用tcpListener.AcceptTCP方法进行接受连接。返回:net.TCPConn对像。 (4)对net.TCPConn对像进行读写操作。 (5)关闭连接。 2、代码: package main import ( "fm
李海彬
2018-03-20
883
0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档