Linux下如何下载qq聊天记录吗聊天

&>&如何在Linux环境下实现视频聊天
如何在Linux环境下实现视频聊天
上传大小:576KB
Linux系统下实现视频聊天软件,本文主要使用AnyChat在QT5环境下的实时应用
综合评分:0
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
fanxiaojun66
综合评分:
积分/C币:3
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
如何在Linux环境下实现视频聊天
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
little_rui
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
如何在Linux环境下实现视频聊天现在位置:[杂谈] Linux下有啥聊天软件,发文件什么的?
IT之家北京网友
skype官网木有下载地址。。日了微软
IT之家广东网友
IT之家北京网友
IT之家新疆喀什网友
IT之家北京网友
IT之家新疆喀什网友
IT之家北京网友
IT之家上海网友
IT之家广东佛山网友
IT之家浙江杭州网友
IT之家浙江杭州网友
IT之家安徽安庆网友
IT之家中国网友
IT之家广东网友
社区总周榜
旗下,鲁ICP备号20:33 提问
Linux下的类似QQ聊天程序
想在Linux下用socket套接字写个类似于windows下的QQ聊天程序,但是遇到不能循环发送和接受的问题,希望能向各位大侠请教,以下是代码:
这是server端代码:
#include&stdio.h&
#include&string.h&
#include&stdlib.h&
#include&errno.h&
#include&sys/types.h&
#include&sys/socket.h&
#include&netinet/in.h&
int main()
int oldfd,
struct sockaddr_
char buf[1024];
oldfd=socket(AF_INET,SOCK_STREAM,0);
memset(&mysock,0,sizeof(mysock));
mysock.sin_family=AF_INET;
mysock.sin_port=htons(1025);
mysock.sin_addr.s_addr=htonl(INADDR_ANY);
bind(oldfd,(struct sockaddr*)&mysock,sizeof(mysock));
listen(oldfd,13);
newfd=accept(oldfd,(struct sockaddr*)NULL,NULL);
n=read(newfd,buf,sizeof(buf));
printf("%s\n",buf);
write(newfd,buf,n);//再写到client上去
close(newfd);
close(oldfd);
以下是client端的代码:
#include&stdio.h&
#include&string.h&
#include&stdlib.h&
#include&errno.h&
#include&sys/types.h&
#include&sys/socket.h&
#include&netinet/in.h&
#include&unistd.h&
int main(int argc,char **argv)
struct sockaddr_
char buf[1024];
fd=socket(AF_INET,SOCK_STREAM,0);
memset(&mysock,0,sizeof(mysock));
mysock.sin_family=AF_INET;
mysock.sin_port=htons(1025);
inet_pton(AF_INET,argv[1],&mysock.sin_addr.s_addr);
while(1){//这是在一次连接成功后添加的循环
connect(fd,(struct sockaddr*)&mysock,sizeof(mysock));
n=read(STDIN_FILENO,buf,sizeof(buf));
write(fd,buf,n);
read(fd,buf,sizeof(buf));
printf("this is fankui information:%s\n",buf);
close(fd);
按赞数排序
I assume you can make sense of my code!
so i just show you code below,if you have any question,
just let me know !!1
#include &stdio.h&
#include &string.h&
#include &stdlib.h&
#include &errno.h&
#include &sys/types.h&
#include &sys/socket.h&
#include &netinet/in.h&
#include &unistd.h&
#define BUF_SIZE 1024
#define LISTEN_PORT 8889
#define LISTEN_NO 10
#define err_exit(msg) (perror(msg),(exit(EXIT_FAILURE)))
int sock_make(void);
void read_from(int fd);
void send_to(int fd);
int main(void)
int sockfd,
struct sockaddr_
char buf[BUF_SIZE];
char recvbuf[BUF_SIZE];
char sendbuf[BUF_SIZE];
sockfd=sock_make();
//If you wanna know which client and what the ip is
//You should no set the the argu being NULL ..
if((connfd=accept(sockfd,(struct sockaddr*)NULL,NULL))&0)
err_exit("&&accept");
puts("-----------wait message---------");
KEEP_READ:
n=read(connfd,recvbuf,sizeof(recvbuf));
//recvbuf[n]=0;
printf("%s\n",recvbuf);
if(strncmp(recvbuf,".",1)) goto KEEP_READ;
puts("-----------Please input----------");
KEEP_SEND:
n=read(STDIN_FILENO,sendbuf,sizeof(sendbuf));
sendbuf[n]=0;
write(connfd,sendbuf,sizeof(sendbuf));
if(strncmp(sendbuf,".",1)) goto KEEP_SEND;
close(connfd);
close(sockfd);
int sock_make(void)
struct sockaddr_
memset(&clientaddr,SOCK_STREAM,sizeof(clientaddr));
clientaddr.sin_family=AF_INET;
clientaddr.sin_port=htons(LISTEN_PORT);
clientaddr.sin_addr.s_addr=htonl(INADDR_ANY);
if((sockfd=socket(AF_INET,SOCK_STREAM,0))&0)
err_exit("&&socket");
if(bind(sockfd,(struct sockaddr*)&clientaddr,sizeof(clientaddr))&0)
err_exit("&&bind");
listen(sockfd,LISTEN_NO);
#include &stdio.h&
#include &string.h&
#include &stdlib.h&
#include &errno.h&
#include &sys/types.h&
#include &sys/socket.h&
#include &netinet/in.h&
#include &unistd.h&
#define BUF_SIZE 1024
#define LISTEN_PORT 8889
#define LISTEN_NO 10
#define err_exit(msg) (perror(msg),(exit(EXIT_FAILURE)))
int main(int argc,char * argv[])
struct sockaddr_in serverA
char sendbuf[BUF_SIZE];
char recvbuf[BUF_SIZE];
if((sockfd=socket(PF_INET,SOCK_STREAM,0))&0)
err_exit("&&socket");
memset(&serverAddr,0,sizeof(serverAddr));
serverAddr.sin_family=AF_INET;
serverAddr.sin_port=htons(LISTEN_PORT);
inet_pton(PF_INET,argv[1],&serverAddr.sin_addr.s_addr);
if((connect(sockfd,(struct sockaddr*)&serverAddr,sizeof(serverAddr)))&0)
err_exit("&&connect");
puts("--------------Please input-----------");
KEEP_SEND:
n=read(STDIN_FILENO,sendbuf,sizeof(sendbuf));
sendbuf[n]=0;
write(sockfd,sendbuf,sizeof(sendbuf));
if(strncmp(sendbuf,".",1)) goto KEEP_SEND;
puts("-------------Wait message------------");
KEEP_READ:
n=read(sockfd,recvbuf,sizeof(recvbuf));
//recvbuf[n]=0; //EOF ..
printf("%s\n",recvbuf);
if(strncmp(recvbuf,".",1)) goto KEEP_READ;
close(sockfd);
Please ,run the client as :
./client 127.0.0.1
if you run the both on both terminal
and you see something below:
terminal 1 (run server)
landpack@landpack-VirtualBox:~/ak/csdn$ ./server
-----------wait message---------
I am Landpack
-----------Please input----------
Hey Landpack !
good to know you
-----------wait message---------
terminal 2 (run client)
landpack@landpack-VirtualBox:~/ak/csdn$ ./client 127.0.0.1
--------------Please input-----------
I am Landpack
-------------Wait message------------
Hey Landpack !
good to know you
--------------Please input-----------
All suggestion are welcome !
Have fun !!
这里有个完整的例子,你可以参考哦
如果有帮助,就请您采纳下我的回答吧,捂脸~~
connect成功后就可以循环发送数据。不用connect放到whilr循环中
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐Linux下p2p的聊天功能实现 - Mereyct - 博客园
我和C++的那些事儿
美帝渣CS博士一枚,研究方向ML、并行计算等
Linux下p2p的聊天功能实现细节
Do one thing at a time, and do well.
今天闲着没事,写一个P2P的点对点的聊天功能的小程序,我觉得对网络编程初学者的学习很有用的。二话不说,我先贴代码吧。有几个地方需要考虑清楚。我会在代码的后面写出来。代码的下载文章的末尾。
#include &stdio.h&
#include &sys/types.h&
#include &sys/socket.h&
#include &stdlib.h&
#include &netinet/in.h&
#include &arpa/inet.h&
#include &unistd.h&
#include &string.h&
#include &signal.h&
#define ERR_EXIT(m) \
perror(m); \
exit(EXIT_FAILURE); \
} while(0)
void do_something(int conn)
char recvbuf[1024];
memset(recvbuf,0,sizeof(recvbuf));
int ret = read(conn,recvbuf,sizeof(recvbuf));
if(ret == 0)
printf("client closed!\n");
else if(ret == -1)
ERR_EXIT("read");
fputs(recvbuf,stdout);
write(conn,recvbuf,ret);
void handler(int sig)
printf("recv a sig = %d\n",sig);
exit(EXIT_SUCCESS);
int main()
if((listenfd = socket(AF_INET,SOCK_STREAM,0)) & 0)
ERR_EXIT("socket");
int on = 1;
int ret = setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on) );
struct sockaddr_
memset(&servaddr,0,sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(10001);
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
if(bind(listenfd,(struct sockaddr*)&servaddr,sizeof(servaddr)) & 0)
ERR_EXIT("bind");
if((listen(listenfd,SOMAXCONN)) & 0 )//主动套接字,变成被动套接字
ERR_EXIT("listen");
struct sockaddr_
socklen_t socklen = sizeof(peeraddr);
if((conn = accept(listenfd,(struct sockaddr*)&peeraddr,&socklen)) & 0)// 获得到是主动套接字
ERR_EXIT("accept");
printf("ip:%s
port:%d\n",inet_ntoa(peeraddr.sin_addr),ntohs(peeraddr.sin_port));
pid = fork();
char sendbuf[1024] = {0};
if(pid == -1) ERR_EXIT("pid");
if(pid == 0)
signal(SIGUSR1,handler);
while(fgets(sendbuf,sizeof(sendbuf),stdin) != NULL)
write(conn,sendbuf,strlen(sendbuf));
memset(sendbuf,0,sizeof(sendbuf));
printf("child closed\n");
exit(EXIT_SUCCESS);
char recvbuf[1024];
memset(recvbuf,0,sizeof(recvbuf));
int ret = read(conn,recvbuf,sizeof(recvbuf));
ERR_EXIT("read");
else if(ret == 0)
printf("peer close\n");
fputs(recvbuf,stdout);
printf("kill parent!\n");
kill(pid,SIGUSR1);
exit(EXIT_SUCCESS);
//do_something(conn);
close(conn);
close(listenfd);
#include &stdio.h&
#include &sys/socket.h&
#include &sys/types.h&
#include &netinet/in.h&
#include &string.h&
#include &unistd.h&
#include &stdlib.h&
#include &arpa/inet.h&
#include &signal.h&
#define ERR_EXIT(m) \
perror(m); \
exit(EXIT_FAILURE); \
} while(0)
void handler(int sig)
printf("recv a sig = %d\n",sig);
exit(EXIT_SUCCESS);
int main(int argc,char *argv[])
if((sockfd = socket(AF_INET,SOCK_STREAM,0)) & 0)
ERR_EXIT("socket");
struct sockaddr_
memset(&servaddr,0,sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(10001);
servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");
if(connect(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr)) & 0)
ERR_EXIT("connect");
char sendbuf[1024] = {0};
char recvbuf[1024] = {0};
pid = fork();
if(pid == -1)
ERR_EXIT("fork");
if(pid == 0)
memset(recvbuf,0,sizeof(recvbuf));
int ret = read(sockfd,recvbuf,sizeof(recvbuf));
if(ret == -1)
ERR_EXIT("read");
else if (ret == 0)
printf("peer closed\n");
fputs(recvbuf,stdout);
printf("child close\n");
kill(pid,SIGUSR1);
exit(EXIT_SUCCESS);
signal(SIGUSR1,handler);
while(fgets(sendbuf,sizeof(sendbuf),stdin) != NULL)
write (sockfd,sendbuf,strlen(sendbuf));
memset(sendbuf,0,sizeof(sendbuf));
printf("parent close!\n");
close(sockfd);
实现的功能很简单,但是需要注意的几个细节:
1、C和S连接以后,当S关闭后,C仍然没有关闭,我用到了信号的功能。
& & &实现的方法:当父进程关闭的时候,子进程也关闭,当子进程关闭的时候,把父进程也关闭了。
2、一个线程用来监听,一个线程用来等待输入。那么,这是一个多线程的小程序。
  创建一个子进程。C端,子进程进程监听,父进程等待输入。S端相反。
3、信号量的问题:
 &SIGUSR1:用户自定义信号量,函数handler用来杀死进程,实现退出。
程序的测试:
总结:总的来说,这个还是很简单的,也就是几个函数是否灵活应用。注意,read函数如果没有读到,就会进入阻塞,如果收到一个0,代表对方关闭了程序,则退出程序。
代码下载:
声明:水平有限,如果有什么地方写错了或者理解有误,希望广大网友指正。}

我要回帖

更多关于 微信聊天视频如何下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信