当前位置:首页 » 操作系统 » linux下聊天程序

linux下聊天程序

发布时间: 2025-06-05 01:49:09

1. linux下怎样使用qq等聊天工具聊天

windows 中可用 QQ、YY、阿里旺旺等多种聊天软件聊天,那么,在 linux 系统中怎样进行聊天呢?不说不知道,其实在 linux 中,同样有多种聊天帐号可供选择。


1、启动 linux 操作系统,进入桌面。

2、进入终端,键入命令 pidgin,回车。在这儿说明一下,一些常用的 linux 操作系统安装完成后都自动安装了这个软件。如果提示没有安装,可以先进行安装。

3、第一次启动该软件,会出现一个添加帐号向导,点击“添加”。

4、在“添加帐号”窗口中,点击协议选择框。

5、在展开的选项中,我们选择其中的一个。例如,以QQ为例。

6、接下来,输入QQ帐号和密码,然后点击“添加”按钮。

7、这时,QQ帐号便添加成功了。

8、我们关闭“添加”窗口,便可以登陆QQ了。

注意:

由于 linux 版的 QQ 最新版为 2008,目前已被官方禁止使用。如果想在 linux 中聊天,建议选择添加其他帐号。谢谢阅读,希望能帮到大家,请继续关注,我们会努力分享更多优秀的文章。

2. 在linux 上使用QQ聊天程序

在Linux上使用QQ聊天程序,可以通过安装第三方软件或插件实现。以下是具体的方法和步骤:

一、选择QQ软件

由于腾讯公司并未推出专门应用于Linux的QQ软件,但可以选择一些自由软件或插件来使用QQ。常用的有:

  • Gaim+OpenQ
  • Gaim+libqq
  • LumaQQ

其中,Gaim+libqq和Gaim+OpenQ都是在Gaim中添加QQ插件,使用时需注意Gaim与QQ插件的版本对应关系。

二、安装QQ软件

在Linux上安装软件有Tarball和RPM两种方式:

  1. 用Tarball方式安装

    • 下载包含libqq插件的Gaim包,如gaimcvsxxxqqx.x.x.tar.gz。
    • 解压并配置安装目录。
    • 编译并安装。
    • 创建软链接以便在命令行中方便地启动Gaim。

如果Gaim安装包中没有包含libqq插件,可以单独下载并安装libqq插件。

  1. 用RPM方式安装

    • 先检查系统中是否已安装Gaim,如有则卸载。
    • 安装Gaim的软件包和libqq插件。
  2. LumaQQ的安装

    • 解压LumaQQ软件包。
    • 修改启动脚本中的Java环境变量。
    • 运行LumaQQ。

三、创建快捷方式

为了方便使用,可以在桌面或任务栏上创建QQ软件的快捷方式:

  • GNOME桌面系统:在桌面或任务栏上单击鼠标右键,选择相应的选项创建快速启动器或图标。
  • KDE桌面系统:在桌面或任务栏上单击鼠标右键,选择相应的选项创建应用程序链接或非KDE应用程序图标。

通过以上步骤,就可以在Linux系统上使用QQ聊天程序了。需要注意的是,由于Linux系统的多样性和更新速度,部分软件或插件可能已不再支持最新的Linux发行版,因此在使用过程中可能会遇到一些兼容性问题。

3. linux下用c语言编写局域网聊天工具

/*服务器*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
#define SERVPORT 5555
#define BACKLOG 10
#define MAX(a,b) ((a)>(b)?(a):(b))
void str_echo(int);
void server()
{
int sockfd,client_fd;
struct sockaddr_in my_addr;
struct sockaddr_in remote_addr;
socklen_t sin_size;
if((sockfd=socket(AF_INET,SOCK_STREAM,0))== -1)
{
perror("socket create error!");
exit(1);
}
my_addr.sin_family=AF_INET;
my_addr.sin_port=htons(SERVPORT);
my_addr.sin_addr.s_addr=INADDR_ANY;
bzero(&(my_addr.sin_zero),8);
if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))==-1)
{
perror("bind error!");
exit(1);
}
if(listen(sockfd,BACKLOG)==-1)
{
perror("listen error!");
exit(1);
}
while(1)
{
sin_size=sizeof(struct sockaddr_in);
if((client_fd=accept(sockfd,(struct sockaddr *)&remote_addr,&sin_size))==-1)
{
perror("accept error!");
continue;
}
printf("received a connection from %s\n",inet_ntoa(remote_addr.sin_addr));
if(!fork())
{
close(sockfd);
str_echo(client_fd);
exit(0);
}
close(client_fd);
}
}
void str_echo(int sockfd)
{
int maxfd;
char sendbuf[1024]={0};
char recvbuf[1024]={0};
fd_set rfds;

while(1)
{
FD_SET(0,&rfds);
FD_SET(sockfd,&rfds);
maxfd=MAX(0,sockfd)+1;

select(maxfd,&rfds,NULL,NULL,NULL);
if(FD_ISSET(sockfd,&rfds))
{
bzero(recvbuf,1024);
recv(sockfd,recvbuf,1024,0);
printf("C:%s\n",recvbuf);
}
if(FD_ISSET(0,&rfds))
{
read(0,sendbuf,1024);
send(sockfd,sendbuf,strlen(sendbuf),0);
bzero(sendbuf,1024);
}
}
}
int main()
{
server();
return 0;
}
/*客户端*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#define SERVPORT 5555
#define MAXSIZE 1024
#define MAX(a,b) ((a)>(b)?(a):(b))
void client(int argc,char **argv)
{
int sockfd,maxfd;
char sendbuf[MAXSIZE]={0};
char recvbuf[MAXSIZE]={0};
// struct hostent *host;
struct sockaddr_in serv_addr;
fd_set rfds;
/* if(argc<2)
{
fprintf(stderr,"Please enter the sserver's name!\n");
exit(1);
}
if((host=gethostbyname(argv[1]))==NULL)
{
herror("get host by name error!\n");
exit(1);
}
*/
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
perror("socket creat error!\n");
exit(1);
}
serv_addr.sin_family=AF_INET;
serv_addr.sin_port=htons(SERVPORT);
// serv_addr.sin_addr=*((struct in_addr *)host->h_addr);
serv_addr.sin_addr.s_addr=inet_addr("127.0.0.1");
bzero(&(serv_addr.sin_zero),8);
if(connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(struct sockaddr))==-1)
{
perror("connection error!\n");
exit(1);
}
FD_ZERO(&rfds);
while(1)
{
FD_SET(0,&rfds);
FD_SET(sockfd,&rfds);
maxfd=MAX(0,sockfd)+1;
select(maxfd,&rfds,NULL,NULL,NULL);
if(FD_ISSET(sockfd,&rfds))
{
bzero(recvbuf,MAXSIZE);
recv(sockfd,recvbuf,MAXSIZE,0);
printf("S:%s\n",recvbuf);
}
if(FD_ISSET(0,&rfds))
{
fgets(sendbuf,MAXSIZE,stdin);
send(sockfd,sendbuf,strlen(sendbuf),0);
bzero(sendbuf,MAXSIZE);
}
}
// close(sockfd);
}
int main(int argc,char **argv)
{
client(argc,argv);
return 0;
}

热点内容
sqlserver2000教程 发布:2025-06-06 14:35:51 浏览:329
安徽同步卫星时钟服务器云主机 发布:2025-06-06 14:26:26 浏览:925
安卓手机微信如何开启共享信息 发布:2025-06-06 14:10:02 浏览:360
田社的算法 发布:2025-06-06 14:05:22 浏览:33
mcgs脚本mod 发布:2025-06-06 14:03:21 浏览:465
大鱼短信怎么配置 发布:2025-06-06 14:01:54 浏览:445
linux上传jdk 发布:2025-06-06 13:52:39 浏览:801
售票服务器如何调时间 发布:2025-06-06 13:52:38 浏览:990
androidgridview对齐 发布:2025-06-06 13:51:48 浏览:577
brew安装php 发布:2025-06-06 13:50:41 浏览:73