V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  assiadamo  ›  全部回复第 9 页 / 共 24 页
回复总数  471
1 ... 5  6  7  8  9  10  11  12  13  14 ... 24  
维稳大量解决就业,哈哈
2023-07-03 18:33:00 +08:00
回复了 sdenvi 创建的主题 问与答 请教一个关于 netty 的问题,关于代理和请求转发
@zzzkkk
在这种情况下,`<-closer` 将会阻塞,直到从 `closer` 通道接收到一个值。

在 `make(chan struct{}, 2)` 中,我们创建了一个带有缓冲大小为 2 的无缓冲通道。这意味着可以向 `closer` 通道发送两个值,而不会立即阻塞。只有当 `closer` 通道的缓冲区已满时,发送操作才会阻塞。

在 `closer <- struct{}{}` 这一行中,我们向 `closer` 通道发送一个值。如果缓冲区仍有空间,该操作会成功并立即返回。如果缓冲区已满,发送操作将会阻塞,直到有空间可用。

在 `<-closer` 这一行中,我们从 `closer` 通道接收一个值。如果通道中有值可用,该操作会成功并立即返回。如果通道为空,接收操作将会阻塞,直到有值可用。

因此,在你提供的代码中,`<-closer` 将会阻塞,直到从 `closer` 通道接收到一个值。这可以用于等待某些操作完成或信号传递。

希望这解答了你的疑问。如果还有进一步的问题,请随时提问。
2023-07-03 16:05:14 +08:00
回复了 sdenvi 创建的主题 问与答 请教一个关于 netty 的问题,关于代理和请求转发
golang 随便抄了一个,就这么简单、
```
package main

import (
"flag"
"fmt"
"io"
"log"
"net"
)

var localAddr *string = flag.String("l", "localhost:9999", "local address")
var remoteAddr *string = flag.String("r", "localhost:80", "remote address")

func main() {
flag.Parse()
fmt.Printf("Listening: %v\nProxying: %v\n\n", *localAddr, *remoteAddr)

listener, err := net.Listen("tcp", *localAddr)
if err != nil {
panic(err)
}
for {
conn, err := listener.Accept()
log.Println("New connection", conn.RemoteAddr())
if err != nil {
log.Println("error accepting connection", err)
continue
}
go func() {
defer conn.Close()
conn2, err := net.Dial("tcp", *remoteAddr)
if err != nil {
log.Println("error dialing remote addr", err)
return
}
defer conn2.Close()
closer := make(chan struct{}, 2)
go copy(closer, conn2, conn)
go copy(closer, conn, conn2)
<-closer
log.Println("Connection complete", conn.RemoteAddr())
}()
}
}

func copy(closer chan struct{}, dst io.Writer, src io.Reader) {
_, _ = io.Copy(dst, src)
closer <- struct{}{} // connection is closed, send signal to stop proxy
}
```
2023-07-03 15:57:46 +08:00
回复了 sdenvi 创建的主题 问与答 请教一个关于 netty 的问题,关于代理和请求转发
netty 自带 proxy 的例子看看行不行
https://github.com/netty/netty/tree/4.1/example/src/main/java/io/netty/example/proxy
这种小功能感觉用 java 太重,可以用 golang 试试
润去其他地区的微软
@chenfcheng 游戏体量小的时候和 web 服务体量小的时候并无区别,单机很正常,如果你的愿景够大,也可以一开始在做的时候就设计出来很多个服,分布式、主从、微服务任你选择。
你不能要求羊了个羊要按魔兽世界那样的服务器规模来对不对。
@awanganddong 一堆日本小二次与手游是 http 的,表现和玩法都是客户端做,服务器就存下数据和做一下敏感的业务,比如抽卡,氪金啥的。所以不用担心,想转就转。
比较高端的是状态同步需要服务器实时计算的游戏,用 tcp 长连接的,但都有现成的框架,大多数时候也都是堆业务,和 curd 没啥区别。只是游戏服务器技术比较封闭,不像互联网各种高端的方案和中间件,总的来说,没有什么特别要求的地方,只需要理解业务。
真的想补八股的话,就操作系统和计算机网络的知识,以及一些游戏中常特有的名词,https://gpp.tkchu.me/ 参考这个电子书,去想一想平时玩的游戏,一些效果是怎样实现的,就行了。
@awanganddong 具体是什么呢,web 调用游戏的 api ?游戏自己提供 web 服务?
几年游戏行业程序小兵路过,也挺烦的最近,主要是同期的同事选择其他行业已经成行业大佬了,我还在吃屎
2023-06-26 14:06:23 +08:00
回复了 LDa 创建的主题 程序员 焦虑,想改变
#3 当前是某司技术主管
@dasvenxx 有缘捞我
2023-06-26 10:28:35 +08:00
回复了 LDa 创建的主题 程序员 焦虑,想改变
应该是: 那些公司都配不上我,我要自己单干
2023-06-26 10:00:23 +08:00
回复了 aiaiwo21 创建的主题 生活 新开银行卡,伴随一些诡异现象
前两周去建行办工资卡,同各种扫码麻烦死,不过没啥提示说开通了其他业务,可能是在上海市中心不敢瞎搞吧
2023-06-25 13:41:11 +08:00
回复了 estk 创建的主题 职场话题 什么是大周,什么是小周?
大周不休息,小周休一天
攒一攒,下个月换手机
2023-06-21 09:50:17 +08:00
回复了 Richard14 创建的主题 程序员 求推荐一本 go 语言入门教学书籍
go 语言设计与实现
https://draveness.me/golang/
2023-06-20 09:42:54 +08:00
回复了 Ivone29 创建的主题 职场话题 小人打小报告,被公司辞退了
从哪找的私活
成员都是 newbee ,反而感觉像批站呢
2023-06-19 10:19:57 +08:00
回复了 ChrisFreeMan 创建的主题 生活 住在小学旁边,没个降噪耳机真的活不下去。
上海,曾住在中学旁边,我上班的时候人家还没开始上学,人家放学时我离下班还远,于是从来没感受到过住在学校边上
1 ... 5  6  7  8  9  10  11  12  13  14 ... 24  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   969 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 42ms · UTC 19:55 · PVG 03:55 · LAX 11:55 · JFK 14:55
Developed with CodeLauncher
♥ Do have faith in what you're doing.