gpt4 book ai didi

java - 如何使用同一个Socket来多个InputStreamReader和OutputStreamWriter

转载 作者:行者123 更新时间:2023-11-30 07:09:25 25 4
gpt4 key购买 nike

我正在用 java 创建一个 irc 客户端。首先,我为每个要连接的 channel 使用一个套接字,例如:

String server = " ircServer " ;
int port = " 6667 " ;
Channellist String [ ] = { " channel 1 " , " Canal2 " " canal3 " , ...} ;

for ( String s : channellist ) {
Socket socket = new Socket (server , port ) ;

InputStreamReader InputStreamReader = new InputStreamReader ( socket.getInputStream ());
OutputStreamWriter OutputStreamWriter = new OutputStreamWriter ( socket.getOutputStream ());

// ... Code to connect the channel
}

但是这种方法在某些服务器上不起作用,因为它们声称来自同一 IP 的许多连接,这是由于使用了多个实例化套接字造成的。

所以,我想知道,如何使用同一个套接字使用N个InputStreamReader和OutputStreamWriter,防止与服务器的过多连接。谢谢。

最佳答案

您不应该在同一个套接字中使用多个读取器/写入器。想象一下尝试使用一部手机进行多个对话。

单个连接就足够了,IRC 协议(protocol)复用该连接来处理与不同 channel 的通信。发送消息命令毕竟是/msg <channel> <msg>允许您从单个作者发送到任意数量的 channel 。

关于java - 如何使用同一个Socket来多个InputStreamReader和OutputStreamWriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39455755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com