linux下聊天程序
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兩種方式:
如果Gaim安裝包中沒有包含libqq插件,可以單獨下載並安裝libqq插件。
用RPM方式安裝
- 先檢查系統中是否已安裝Gaim,如有則卸載。
- 安裝Gaim的軟體包和libqq插件。
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;
}