我想在我的网站上实现聊天服务,并想知道如何从头开始创建一个简单的基于浏览器的IRC客户端?
我有一个linux盒子,可以安装我想要的任何东西.Google找到了如何设置IRC服务器的导师,但没有关于如何创建IRC客户端的说明.
(作为客户端语言,我可以使用JavaScript或Flash.)
我正在制作 IRC 聊天客户端,我想获取用户列表或只是用户计数,我该怎么做。这是我用来连接到 IRC 的方法:
Private Sub IRCConnect()
Dim stream As NetworkStream
Dim irc As TcpClient
Dim reader As StreamReader
Try
irc = New TcpClient(SERVER, PORT)
stream = irc.GetStream()
reader = New StreamReader(stream)
writer = New StreamWriter(stream)
' Start PingSender thread
Dim ping As New PingSender
ping.Start()
writer.WriteLine(USER)
writer.Flush()
writer.WriteLine("NICK " & Config.Nickname)
writer.Flush()
writer.WriteLine("JOIN " & Config.Channel & " " & Config.ChanPass)
writer.Flush()
txtView.Text = txtView.Text & ">Connected successfully." & vbNewLine
HighlightPhrase(txtView, "Connected successfully.", Color.Lime)
Thread.Sleep(2000)
Catch Ex As …Run Code Online (Sandbox Code Playgroud) sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sck.connect((irc, port))
sck.send('PRIVMSG ' + 'NICKSERV' + 'ghost' + 'supaBOT' + 'htown')
sck.send('NICK supaBOT\r\n')
sck.send('PRIVMSG ' + 'NICKSERV' + 'IDENTIFY' + 'password')
sck.send('USER supaBOT supaBOT supaBOT :supaBOT Script\r\n')
sck.send('JOIN ' + " " + chan + '\r\n')
Run Code Online (Sandbox Code Playgroud)
当我尝试运行脚本时,出现此错误:
trix.gonullyourself.org 451 PRIVMSG You have not registered
trix.gonullyourself.org 451 PRIVMSG You have not registered
trix.gonullyourself.org 451 JOIN You have not registered
: You
Run Code Online (Sandbox Code Playgroud)
昵称 supaBOT 已在服务器上注册,但我不知道如何识别服务器,因为上面的代码不起作用。
是否有针对Android任何Android兼容的(从2.3.3到4.0.3)IRC库?
到目前为止,我无法找到一个,任何帮助表示赞赏!
我有一个完全用Java编写的IRC机器人,我一直在我的家用电脑上托管,但我的iffy互联网连接已经断开了很多.我一直想知道我是否可以使用Google Apps Engine来持续连接机器人?如果是这样,我将要做出哪些改变?
谢谢您的帮助
有谁知道如何以编程方式:
我习惯使用PHP,但这并不重要.
谢谢 !
我正在用 Python 制作一个 IRC 机器人。while每次从 IRC 服务器接收到数据时,都会有一个循环重复。我想有另一个while每分钟运行一次的循环,所以我想不出组合这些循环的方法。
有没有办法“背景”一个循环并允许程序的其余部分在它“做它的事情”时继续运行?
我的IRC机器人不会收到大约一半的聊天命令.我在自定义渠道上使用freenode服务器.无论如何我可以改善这个吗?
图:

import sys
import socket
import string
HOST="irc.freenode.net"
PORT=6667
NICK="FedoraCoinBot"
IDENT="CephonBot"
REALNAME="CephonBot"
CHAN="#cephbot"
readbuffer=""
s=socket.socket( )
s.connect((HOST, PORT))
s.send("NICK %s\r\n" % NICK)
s.send("USER %s %s bla :%s\r\n" % (IDENT, HOST, REALNAME))
s.send("JOIN :%s\r\n" % CHAN)
s.send("PRIVMSG %s :%s\r\n" % (CHAN, "Hi! I am a FedoraCoin Bot!"))
s.send("PRIVMSG %s :%s\r\n" % (CHAN, "Designed by Cephon ;)"))
# Loop
while 1:
text=s.recv(2040)
print text
readbuffer=readbuffer+s.recv(1024)
temp=string.split(readbuffer, "\n")
readbuffer=temp.pop( )
if text.find('!help') !=-1:
s.send("PRIVMSG %s :%s\r\n" % (CHAN, "You said help"))
for …Run Code Online (Sandbox Code Playgroud) 通常我会尝试使用扭曲库进行类似的操作,但这不适用于 python 3 - 所以我尝试使用 sockets 库。该代码确实建立了连接,但服务器以“无标识响应”快速响应。我没有太多的网络编程经验,所以如果有人能指出我在这里犯的错误,我将不胜感激。我也很清楚有些函数/其他代码没有使用,或者我使用的不一致。我只是想我会在这里粘贴我的全部代码,以防万一。
import socket
server = "irc.freenode.net"
channel = "put channel here"
nickname = "put nickname here"
def encode(text):
return text.encode("ascii")
def ping():
irc_socket.send(encode("PONG :pingis\n"))
def send_message(chan, msg):
irc_socket.send(encode("PRIVMSG " + chan + " :" + msg + "\n"))
def join_channel(chan):
irc_socket.send(encode("JOIN " + chan + "\n"))
def login(username='user', realname='Pythonist', hostname='Helena', servername='Server'):
irc_socket.send(encode("USER %s %s %s %s" % (username, hostname, servername, realname)))
irc_socket.send(encode("NICK " + nickname))
irc_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
irc_socket.connect((server, 6667))
login()
join_channel(channel)
while …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 TCP IP 协议创建服务器
但它不接受连接,或者可能是因为监听
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <netdb.h>
#include <strings.h>
#include <arpa/inet.h>
#include <unistd.h>
void error(char *msg)
{
perror(msg);
exit(1);
}
int main(int argc, char *argv[])
{
int sockfd,newsockfd,num_port,serveur_T;
socklen_t client_T;
char buffer[200];
struct sockaddr_in adr_serveur, adr_client;
int n;
if (argc < 2)
{
fprintf(stderr, "nombre d'arguments est insuffisant\n");
exit(1);
}
sockfd=socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd < 0)
{
error("erreur de creation de socket");
}
serveur_T=sizeof(adr_serveur);
bzero((char*)&adr_serveur, serveur_T);
num_port=atoi(argv[1]);
adr_serveur.sin_family=AF_INET;
adr_serveur.sin_addr.s_addr=INADDR_ANY; …Run Code Online (Sandbox Code Playgroud)