首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >现有服务的Netty (虚拟)

现有服务的Netty (虚拟)
EN

Stack Overflow用户
提问于 2012-05-09 06:08:02
回答 1查看 791关注 0票数 1

有一个现有的服务,我想为它编写一个虚拟服务(使用Netty)。它将用于测试目的。

服务的现有客户端代码片段如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Socket socket = new java.net.Socket();
socket.connect(new InetSocketAddress("localhost", 8080), 10000);
socket.setSoTimeout(20000); // set a timeout of 20 seconds
InputStreamReader ir = new InputStreamReader(socket.getInputStream());
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// write some string to the server and wait for answer
out.println("SomeCommand");
// server has written some answer, read it
char[] c = new char[2];
ir.read(c, 0, 2);
String cs = new String(c);
if ("OK".equals(cs.toString())) {
    // write some more string's to the server
}
// we're done, close the connection
out.println("BYE");
out.close();
socket.close();

奈蒂是为java.net.Socket连接创建服务器的正确框架吗?(如果没有,应使用哪一种框架?

我正试图找到一种方法,从Netty开始,使用QuoteOfTheMoment示例。QuoteOfTheMomentServerHandler基本上做我想做的事情,在传入消息时,返回一些答案,以便上面的代码段可以使用输入流读取答案,但是上面的套接字不能连接到QuoteOfTheMomentServer。错误是“连接被拒绝”。

编辑更多说明:

问题(我认为)不是连接,也不是我使用的端口。让我尝试更好地提出以下问题:

我刚开始使用netty (没有nio经验),不熟悉不同类型的频道、管道等等。

服务器应该像一样,像servlet请求/响应一样(比如,不是http或试图重建http ),对写入输出流的inputString做出反应,就像在代码片段中那样,并将一些字符串/字节写回输入流,就像代码片段中的那样,因此客户机才会继续前进。因此,连接应该保持打开,但也是同步的,客户端等待服务器的答复。如果我使用示例java教程中的“编写套接字服务器端”,我就能够让它对客户端起作用。但是我想利用网际网路中的线程处理等。

QuoteOfTheMomentServerHandler似乎是我想要的服务器端实现,但是这个设置能处理给定的客户端代码吗?

所以问题是,考虑到客户端的工作方式,应该使用哪种管道、通道或类似的东西?

同样,客户机和服务器也是存在的。我希望构建一个虚拟服务器实现来处理现有的客户端。

EN

回答 1

Stack Overflow用户

发布于 2012-05-09 06:34:41

Netty是一个TCP/IP框架。因此,是的,如果您正在开发TCP/IP服务器,则该工具包很适合使用。

我假设您在试图将客户端连接到服务器时出错。此外,服务器也应该正在运行。

当得到一个连接拒绝错误,有一对您的检查。第一个是服务器上的防火墙(如果有的话),允许连接到端口8080?其次,在客户端计算机上尝试打开到服务器的telnet会话,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Telnet yourserverip 8080

这将打开到服务器的套接字连接。如果您收到错误消息,请搜索它。

最后一个问题是,您可能正在运行一个服务器,如tomcat、glassfish、IIS,它们已经使用了端口8080。例如,尝试像10810这样的非标准端口。

最新情况:

如果你是网络新手,请阅读在这里找到的http://netty.io/docs/stable/guide/html/用户指南。

我看了一下即时语录服务,我相信我找到了问题的一部分。即时报价服务是一个广播的UDP/IP客户端和服务器。UDP是一个更轻量级的TCP IP“版本”。它不能保证传送到客户端或服务器,而且是广播的。UDP有点像无线电广播,因为它通常不是针对特定的IP,而是通过整个网络进行广播。因此,您的正常TCP IP连接将无法在UDP服务器上工作。

有关如何编写UDP客户端http://systembash.com/content/a-simple-java-udp-server-and-udp-client/的链接。

我建议您将当前的Quote服务器从UDP转换为TCP/IP服务器,因为这将为您提供一些创建TCP/IP服务器的实践,而不会涉及太多细节。一旦你对此感到满意,你应该能够从头开始一次。

请记住,Netty为您处理NIO部分。它是一个基于NIO的更高级别的框架,因此对您隐藏了很多细节。使用netty不需要很好地了解NIO,但需要很好地理解Netty的概念。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10517811

复制
相关文章
微服务中的netty
  一般使用netty主要是整个netty流程的理解,实际开发中服务端、客户端参数的配置,以及连接 handle的管理是关键,再有就是encode和decode编码、解码。   服务端流程图   客户
杉枫
2018/01/03
1.4K0
微服务中的netty
Netty流程学习一-netty启动服务
什么时候创建severSocketChannel、初始化serverSocketChannel,同时给serverSocketChannel从bossGroup中选择一个NioEventLoop
路行的亚洲
2020/12/16
4440
Netty流程学习一-netty启动服务
Netty 实现简单的HTTP服务
本篇文章是Netty专题的第八篇,前面七篇文章如下: 高性能NIO框架Netty入门篇 高性能NIO框架Netty-对象传输 高性能NIO框架Netty-整合kryo高性能数据传输 高性能NIO框架Netty-整合Protobuf高性能数据传输 Netty4自带编解码器详解 Netty粘包拆包解决方案 Netty 断线重连解决方案 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。 在后端开发中接触HTTP协议的比较多,目前大部分都是基于
猿天地
2018/04/18
1.2K0
Netty 长连接服务
来源:Dozer's Technology Blog 链接:https://www.dozer.cc/2014/12/netty-long-connection.html(点击文末阅读原文前往) 推送服务 还记得一年半前,做的一个项目需要用到 Android 推送服务。和 iOS 不同,Android 生态中没有统一的推送服务。Google 虽然有 Google Cloud Messaging ,但是连国外都没统一,更别说国内了,直接被墙。 所以之前在 Android 上做推送大部分只能靠轮询。而我们之前
java达人
2018/01/31
4.6K0
Netty 长连接服务
【netty】实现http服务
腾云先锋(TDP,Tencent Cloud Developer Pioneer)是腾讯云GTS官方组建并运营的技术开发者群体。这里有最专业的开发者&客户,能与产品人员亲密接触,专有的问题&需求反馈渠道,有一群志同道合的兄弟姐妹。来加入属于我们开发者的社群吧!
无敌小菜鸟
2022/05/30
8490
【netty】实现http服务
【Netty】使用 Netty 开发 HTTP 服务器
① HTTP 服务器端 : 在服务器端使用 Netty 开发 HTTP 服务器 , 该 HTTP 服务器监听 8888 端口 ;
韩曙亮
2023/03/27
5920
【Netty】使用 Netty 开发 HTTP 服务器
Netty入门实例-Http服务
  启动服务器,返回在浏览器地址栏中输入 http://localhost:8666/index.html
用户4919348
2019/12/31
7550
Netty案例介绍(websocket服务)
  Http协议是无状态的, 浏览器和服务器间的请求响应一次,下一次会重新创建连接.所有在有些情况下并不是太适用。这时websocket就是我们的一种实现方案,具体的websocket的内容网上很多,自行查阅哦,本文主要是介绍基于netty如何实现websocket通信。
用户4919348
2020/01/24
2.9K0
Netty 服务转发Tcp请求
背景使用Netty转发Tcp请求。例子import io.netty.bootstrap.Bootstrap; import io.netty.bootstrap.ServerBootstrap; import io.netty.buffer.ByteBuf; import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel;
8菠萝
2022/06/29
2.6K0
Netty如何实现服务的优雅关闭
最常见的,比如业务开发中,服务突然异常,刚进来的用户请求还在,通过优雅关闭,给他们 30s 时间继续执行,以免直接报错出去。
JavaEdge
2021/02/22
1.8K0
【Netty】Netty 入门案例分析 ( Netty 模型解析 | Netty 服务器端代码 | Netty 客户端代码 )
① NioEventLoopGroup 线程池使用场景 : Netty 模型中的 BossGroup 和 WorkerGroup 都是 NioEventLoopGroup 类型的线程池 ;
韩曙亮
2023/03/27
2.1K0
【Netty】Netty 入门案例分析 ( Netty 模型解析 | Netty 服务器端代码 | Netty 客户端代码 )
netty系列之:使用netty搭建websocket服务器
websocket是一个优秀的协议,它是建立在TCP基础之上的,兼容HTTP的网络协议。通过Websocket我们可以实现客户端和服务器端的即时通讯,免除了客户端多次轮循带来的性能损耗。
程序那些事
2021/09/27
5.8K0
管理云服务?扩展现有IT安全模式
公有云与私有云带来了新的IT安全需求,数据中心团队需要重新考虑如何处理防火墙、身份管理等问题。 云计算与数据中心之间有许多相似点,但团队管理云服务,应该扩展现有的IT安全模式。 在最简单的模式中,云服务器是远端服务器或服务器集群,它们提供某种服务。当第三方“拥有”云资源,并处理用户数据时,这种方式可以被视为公有云。当云资源或至少云的一部分包含在公司自己的数据中心内,它被称为私有云。两种模式的混合,数据穿梭于两者之间,被视为混合云。 当管理员们升级其IT安全模式到云上后——无论是公有或私有云,都有着各种类型的
静一
2018/03/26
1.2K0
netty系列之:使用netty实现支持http2的服务器
上一篇文章中,我们提到了如何在netty中配置TLS,让他支持HTTP2。事实上TLS并不是https的一个必须要求,它只是建议的标准。那么除了TLS之外,还需要如何设置才能让netty支持http2呢?一起来看看吧。
程序那些事
2021/10/22
1.6K0
Netty(二) 创建简单的服务器
本篇文章是延续上一篇Netty文章,因此推荐先去看上一篇文章Netty(一),当然对Netty有一定认识略过。开始利用Netty创建一个简单的服务器
tanoak
2018/07/02
7980
netty服务端 JVM优化[通俗易懂]
java -jar -server -Xms4G -Xmx4G -XX:NewSize=3584m -XX:PermSize=64m -XX:SurvivorRatio=1 -XX:+UseParallelGC -XX:-UseAdaptiveSizePolicy 这是我的linux服务端,针对netty的配置
全栈程序员站长
2022/09/01
2350
netty系列之:使用netty实现支持http2的服务器
上一篇文章中,我们提到了如何在netty中配置TLS,让他支持HTTP2。事实上TLS并不是https的一个必须要求,它只是建议的标准。那么除了TLS之外,还需要如何设置才能让netty支持http2呢?一起来看看吧。
程序那些事
2021/10/26
4400
【Netty】使用 Netty 开发 HTTP 服务器 ( HTTP 请求过滤 )
在上述代码案例中 , 运行后 , 服务器端收到了两次 HTTP 请求 , 这里的两次请求 , 一个是请求 http://127.0.0.1:8888/ 地址资源 , 令一个是请求网站的图标 ;
韩曙亮
2023/03/27
1.1K0
【Netty】使用 Netty 开发 HTTP 服务器 ( HTTP 请求过滤 )
如何安装虚拟服务器 安装虚拟服务器的好处
众所周知网络是一个虚拟的空间,网络既看不见、也摸不着,但是却能够为人类带来众多的便利,众所周知电脑和手机是两个截然不同的设备,在使用电脑的过程中,有很多手机的功能是没有办法操作的。但是现如今有了虚拟服务器的出现,在电脑上能够模拟使用手机,这样使人们的生活更加的方便,那么在接下来的内容里就给大家介绍一下如何安装虚拟服务器。
用户8715145
2021/09/10
8.2K0
netty 构建server和client 服务
编程学习的方法,我认为是以小见大,在理解一个东西之前一定要先会用,并用熟它,这样理解才会快。 就跟理解自行车一样,不会骑,然后先开始研究,最终可能会研究明白,但是毕竟还是事倍功半。 所以先构建一个可以使自己理解的项目,再一点一点学习原理是一种比较好的方式。
潇洒
2023/10/20
2340

相似问题

连接到现有虚拟网络的服务结构集群

11

在现有虚拟机上部署服务

17

子类Netty Channel或使用现有的

20

netty在多个netty服务器之间共享信道

10

使用Netty的REST Web服务

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文