我正在用java创建一个irc客户端。起初,我为每个要连接的通道使用了一个插座,例如:
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,防止过度连接到服务器。非常感谢。
卡亚曼,谢谢你的回答。要发送消息,我明白了,但我想使用同一个InputStreamReader和OutputStreamWriter加入多个频道。例如,在上述代码之后,它会执行以下代码:
BufferedReader reader = new BufferedReader ( this.inputStreamReader ) ;
BufferedWriter writer = new BufferedWriter ( this.outputStreamWriter ) ;
writer.write ( " NICK " + " myNickName " + "\ r \ n");
writer.write ( " JOIN" + " ircChannel " + "\ r \ n");
writer.flush ();
String line = null;
while ( (line = reader.readLine ( ) ) ! = null)
System.out.println (line ) ;
有了作者,我可以加入频道,而读者,我可以倾听频道里发生的事情。那么,我该如何连接到多个频道,并收听所有频道呢?
非常感谢你。
尝试使用java nio通道。愿他们解决你的问题
不能在同一个套接字中使用多个读写器。想象一下,试着用一部手机进行几次对话。
一个连接就足够了,IRC协议将其多路复用,以处理与不同通道之间的通信。发送消息命令毕竟是/msg
我有两个这样的等级: 和 我想使用hibernate持久化这两个类。字段messagesOfTypeA、messagesOfTypeB和messagesOfTypeC根据消息中的类型字段对消息对象进行分组。 如何使用XML hibernate映射映射MyClass和Message之间的一对多关系?(我正在使用Hibernate 3.6)
我不明白InputStream、InputStreamReader和BufferedReader到底是做什么的。它们都有一个read()方法,对于BufferedReader,还有readLine()。为什么我不能只使用InputStream或者只添加inputStreamReader呢?为什么我需要添加BufferedReader?我知道这与效率有关,但我不明白怎么做。 我一直在研究Buffer
问题内容: 可以将 Spark RDD 通过管道传输到Python吗? 因为我需要一个python库来对数据进行一些计算,但是我的主要Spark项目基于Scala。有没有办法将两者混合使用或让python访问相同的spark上下文? 问题答案: 实际上,您可以使用Scala和Spark以及常规Python脚本来传递到python脚本。 test.py 火花壳(scala) 输出量 你好约翰 你好林
主要内容:1 什么是Java OutputStreamWriter,2 Java OutputStreamWriter的构造方法,3 Java OutputStreamWriter的方法,4 Java OutputStreamWriter的例子1 什么是Java OutputStreamWriter OutputStreamWriter 类用于将字符流转换为字节流,使用指定的字符集将字符编码为字节。write() 方法调用编码转换器,该转换器将字符转换为字节。然后,将所得的字节存储在缓冲区中,然
基本上我有: 错误:只有在显式请求批注处理时才接受类名“test” 非常感谢所有的回复:)
注意:这是与Java7。此外,我没有使用JAXB从模式生成任何东西。我只/只是想使用JAXB来反序列化现有SOAP消息的片段。所以JAXB bean是"手写的"。 我试图用JAXB反序列化以下XML。我无法作为字符串访问它。相反,我是作为一个对象: 但我还想将实例整理成一个,它是属于不同名称空间的消息的一部分。 我首先尝试编写一个根本没有提到名称空间的类: 但是当我用它来尝试反序列化包含元素的对象