51
Dev开发社区
首页
文章
问答
工具
搜索
登录
注册
#SoC
Socket网络编程--网络爬虫(2)
上一小节,我们实现了下载一个网页。接下来的一步就是使用提取有用的信息。如何提取呢?一个比较好用和常见的方法就是使用正则表达式来提取的。想一想我们要做个什么样的网络爬虫好呢?我记得以前好像博客园里面有人写过一个提取博客园用户名的博客。我这次就实现这个好了。 第一步我们要分析博客园一个URL的组成,我们每一个用户对应...
代码星球
·
2020-12-28
Socket
网络编程
网络
爬虫
Socket网络编程--网络爬虫(1)
我们这个系列准备讲一下--网络爬虫。网络爬虫是搜索引擎系统中十分重要的组成部分,它负责从互联网中搜集网页,采集信息,这些网页信息用于建立索引从而为搜索引擎提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果。网络爬虫的基本工作原理: (1)从一个初始URL集合中挑选...
代码星球
·
2020-12-28
Socket
网络编程
网络
爬虫
Socket网络编程--epoll小结
以前使用的用于I/O多路复用为了方便就使用select函数,但select这个函数是有缺陷的。因为它所支持的并发连接数是有限的(一般小于1024),因为用户处理的数组是使用硬编码的。这个最大值为FD_SETSIZE,这是在<sys/select.h>中的一个常量,它说明了最大的描述符数。但是对于大多数应...
代码星球
·
2020-12-28
Socket
网络编程
--epoll
小结
Socket网络编程--小小网盘程序(5)
各位好呀!这一小节应该就是这个小小网盘程序的最后一小节了,这一节将实现最后的三个功能,即列出用户在服务器中的文件列表,还有删除用户在服务器中的文件,最后的可以共享文件给好友。 列出用户在服务器中的文件列表 增加一个结构体1structFileList2{3intcnt;4charlist[16][128];5}...
代码星球
·
2020-12-28
Socket
网络编程
小小
网盘
程序
Socket网络编程--小小网盘程序(4)
在这一小节中实现了文件的下载,具体的思路是根据用户的uid和用户提供的文件名filename联合两张表,取得md5唯一标识符,然后操作这个标识符对应的文件发送给客户端。 实现下载的小小网盘程序 client.cpp增加下面这个函数以实现文件的下载。1intfile_pull(structAddraddr,str...
代码星球
·
2020-12-28
Socket
网络编程
小小
网盘
程序
Socket网络编程--小小网盘程序(3)
接上一小节,这次增加另外的两张表,用于记录用户是保存那些文件。增加传上来的文件的文件指纹,使用MD5表示。 两张表如下定义:1createtablefiles(2fidint,3filenamevarchar(64),4md5varchar(64)5);67createtablerelations(8uidint...
代码星球
·
2020-12-28
Socket
网络编程
小小
网盘
程序
Socket网络编程--小小网盘程序(2)
这一节将不会介绍太多的技术的问题,这节主要是搭建一个小小的框架,为了方便接下来的继续编写扩展程序。本次会在上一小节的基础上加上一个身份验证的功能。 因为网盘程序不像聊天程序,网盘是属于主动向服务器拉取信息,而聊天程序有可能要被动获取信息,所以为了减轻服务器压力,每次要向服务器获取服务就建立一个短连接,而不像聊天程...
代码星球
·
2020-12-28
Socket
网络编程
小小
网盘
程序
Socket网络编程--小小网盘程序(1)
这个系列是准备讲基于LinuxSocket进行文件传输。简单的文件传输就是客户端可以上传文件,可以从服务器端下载文件。就这么两个功能如果再加上身份验证,就成了FTP服务器了,如果对用户的操作再加上一些功能(如分享),就可以作为一个最简单的网盘了。想想是不是有点小激动啊。 我这一小节就不讲那么高级的东西,就先了解文...
代码星球
·
2020-12-28
Socket
网络编程
小小
网盘
程序
Socket网络编程--聊天程序(9)
这一节应该是聊天程序的最后一节了,现在回顾我们的聊天程序,看起来还有很多功能没有实现,但是不管怎么说,都还是不错的。这一节我们将讲多服务器问题(高大上的说法就是负载问题了。)至于聊天程序的文件发送(也即二进制文件发送例如图片)和单点登陆(就是多加一个数组fd_L[],用来记录是否已经登陆过了。),这些问题就不讨论了...
代码星球
·
2020-12-28
Socket
网络编程
聊天
程序
Socket网络编程--聊天程序(8)
上一节已经完成了对用户的身份验证了,既然有了验证,那么接下来就能对不同的客户端进行区分了,所以这一节讲实现私聊功能。就是通过服务器对客户端的数据进行转发到特定的用户上, 实现私聊功能的聊天程序 实现的技术细节是:对客户端发送的数据增加一个标识头,由于我们处理的是纯文本,所以为了讲解的方便就把标识头加到聊天信息的...
代码星球
·
2020-12-28
Socket
网络编程
聊天
程序
Socket网络编程--聊天程序(7)
接上一小节,本来是计划这一节用来讲数据库的增删改查,但是在实现的过程中,出现了一点小问题,也不是技术的问题,就是在字符界面上比较不好操作。比如要注册一个帐号,就需要弄个字符界面提示,然后输入数字表示选择,在依次输入信息。(这一点,用C写过什么管理系统就知道,很是麻烦。)考虑到本程序讲的是网络编程,就不弄增删改查了,...
代码星球
·
2020-12-28
Socket
网络编程
聊天
程序
Socket网络编程--聊天程序(6)
这一小节将增加一个用户的结构体,用于保存用户的用户名和密码,然后发给服务器,然后在服务器进行判断验证。这里就有一个问题,以前讲的就是发送字符串是使用char类型进行传输,然后在服务器进行用同样是字符串进行接收。然而作为一个结构体是不是也可以呢?如果有看send或recv的函数定义就知道第二个参数是void*类型,也...
代码星球
·
2020-12-28
Socket
网络编程
聊天
程序
Socket网络编程--聊天程序(5)
上一小节我们讲了使用select来避免使用多进程的资源浪费问题。上次只是实现了从多个客户端发送数据给服务器端,接下来就要实现从服务器端发送数据给各个客户端。 使用select多路转换处理聊天程序2 client.c使用上一节用的那个,在那个基础上修改下面几句66//send-recv一些返回指没有判...
代码星球
·
2020-12-28
Socket
网络编程
聊天
程序
Socket网络编程--聊天程序(4)
上一小节讲到可以实现多客户端与服务器进行通讯,对于每一个客户端的连接请求,服务器都要分配一个进程进行处理。对于多用户连接时,服务器会受不了的,而且还很消耗资源。据说有个select函数可以用,好像还很NB的样子。 使用select多路转换处理聊天程序 下面摘取APUE14.5小结I/O多路转接当从一个描述符读,...
代码星球
·
2020-12-28
Socket
网络编程
聊天
程序
Socket网络编程--聊天程序(3)
上一小节,已经讲到可以每个人多说话,而且还没有限制,简单的来说,我们已经完成了聊天的功能了,那么接下来我们要实现什么功能呢?一个聊天程序至少应该支持一对多的通讯吧,接下来就实现多个客户端往服务器发送数据,和服务器向多个客户端发送数据。 多对一,单向,各个客户端都可以向服务器发送数据 close函数 #incl...
代码星球
·
2020-12-28
Socket
网络编程
聊天
程序
首页
上一页
...
9
10
11
12
13
...
下一页
尾页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他