我编写了一个小程序,用于检查在线商店中特定部门的新项目。当它确实发现添加了一个新项目时,它应该将该信息发送到一个简单的IRC-bot,然后将其写入一个频道,这样我就可以立即看到它。
问题是IRC部分只能工作一次。因此,当解析器在我的控制台中成功通告商店中的每个新项目时,IRC机器人仅显示第一个。所以问题很可能是我的套接字代码。
我会告诉你,我是一个带套接字的完整菜鸟,所以它可能是一个非常简单的问题(对你而言)。
足够的话题,这里是相关的代码:
机器人:
public void openSocket() throws IOException{
serversock = new ServerSocket(1551);
Socket sock = serversock.accept();
BufferedReader incoming = new BufferedReader(new InputStreamReader(sock.getInputStream()));
String inString = incoming.readLine();
sendMessage("#channel", inString);
}
public static void main(String[] args) throws Exception {
XanaduBot bot = new XanaduBot();
bot.setVerbose(true);
bot.connect("irc.server.net");
bot.joinChannel("#channel");
bot.openSocket();
}
刮刀上的插座部分:
if(old == false){
Socket client = new Socket("localhost",1551);
DataOutputStream toBot = new DataOutputStream(client.getOutputStream());
String infoToSend = "New product! "+ info;
toBot.writeBytes(infoToSend + '\n');
toBot.flush();
System.out.println(infoToSend);
}
只要程序找到新项,变量old就为false。而且我知道异常处理得非常糟糕,对不起!
任何帮助表示赞赏!