socket-----爬虫&&文件传输

最近想着写几个小demo

写了一个爬虫,用的是C++,基本思想就是一层一层的找类似深搜吧,抓取的页面是www.cnblogs.com,从localhost发送request请求,给www.cnblogs.com,并且根据返回的数据,在中查找用户名,将用户名用map保存,因为有的用户名可能不止一次访问到,所以存在一个判断如果当前的用户名访问过了,就不需要在存储了,并且根据当前的用户名,拼接当前用户的url,eg:www.cnblogs.com/username,然后继续查找用户名,并且此时建立一个queue,一个是结构体类型的queue,存储的是当前的URI和用户名,一个是存储用户名的,现在存在一点,如果用户不登陆,在查找一个用户的主页时,返回的response数据中没有该用户关注的或者是粉丝,或者是评论人的username,换句话说,从当前用户额主页中获取不到username。

文件传输系统,是看了别人的博客,以前的聊天系统,能实现从客户端传送文件到server,并且里面有用户名和密码,存储的时只是本地文件,并没有用到数据库,这个在存储用户名和密码用mysql存储,一只有个问题是在和数据库进行链接的时候,把一些参数的内容混淆了,链接的时候把password设置为了NULL,导致一直连接不上数据库(本机测试,没有远程)

mysql_real_connect(&conn,"localhost","user","password","database",port,unix_socket,0))

port端口为0,使用unix连接方式,unix_socket为null时,表明不使用socket或管道机制,最后一个参数经常设置为0

MYSQL *mysql_real_connect(MYSQL *mysql,
 const char *host,
 const char *user, 
const char *passwd, 
const char *db, 
unsigned int port,
 const char *unix_socket,
 unsigned long client_flag)
上面描述了五个参数的主要取值,MYSQL *为mysql_init函数返回的指针,host为null或              // localhost时链接的是本地的计算机,当mysql默认安装在unix(或类unix)系统中,root账户是没// 有密码的,因此用户名使用root,密码为null,当db为空的时候,函数链接到默认数据库,在进行  // mysql安装时会存在默认的test数据库,因此此处可以使用test数据库名称,port端口为0,使用    // unix连接方式,unix_socket为null时,表明不使用socket或管道机制,最后一个参数经常设置为0

返回值:当连接成功时,返回MYSQL连接句柄,失败,返回NULL。当成功时,返回值与第一个参数

然后当前试了一个chorme的安装包,当传递到server端,再打开chorme时,安装包能运行了。

继续完善功能。。。。

时间: 2024-10-02 14:36:31

socket-----爬虫&&文件传输的相关文章

socket大文件传输(解决粘包)

解决粘包 模块struct struct.pack(type,num) type:是num的类型 num :是一个数字 r = struct.pack 把一个数字打包成一个四字节的bytes struct.unpack(type,r) 功能:解包,把r解成原数字,结果是一个元组,原数字在元组的下标位0的位置 #解决粘包:原理是在服务器接收到字典长度后,根据字典长度去recv字典中的内容,就不会造成recv最后一次接收完后剩下的空间留给部分文件内容所造成字典内容和文件内容黏在一起 #实现文件的上传

Java学习笔记——Socket实现文件传输

我越是逃离,却越是靠近你. 我越是背过脸,却越是看见你. 我从你开始, 我在你结束. 需求:实现局域网下socket传输文件. 客户端步骤: 1.建立与服务器的连接 2.创建client输出流 3.创建输入流,绑定本地文件 4.读取文件后输出给服务器 服务器端步骤: 1.启动服务器 2.创建accept输入流 3.创建输出流绑定本地文件 4.读取客户端信息写入本地文件 1.字节流传输文件. 1 public class Client { 2 3 public static void main(S

Java基于Socket文件传输示例(转)

最近需要进行网络传输大文件,于是对基于socket的文件传输作了一个初步的了解.在一位网友提供的程序基础上,俺进行了一些加工,采用了缓冲输入/输出流来包装输出流,再采用数据输入/输出输出流进行包装,加快传输的速度.废话少说,先来看服务器端的程序. 1.服务器端 package sterning; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.DataOutputStream;

Java基于Socket文件传输示例

最近需要进行网络传输大文件,于是对基于socket的文件传输作了一个初步的了解.在一位网友提供的程序基础上,俺进行了一些加工,采用了缓冲输入/输出流来包装输出流,再采用数据输入/输出输出流进行包装,加快传输的速度.废话少说,先来看服务器端的程序. 1.服务器端 package localSocket; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.DataOutputStrea

android--Java基于Socket文件传输示例

最近需要进行网络传输大文件,于是对基于socket的文件传输作了一个初步的了解.在一位网友提供的程序基础上,俺进行了一些加工,采用了缓冲输入/输出流来包装输出流,再采用数据输入/输出输出流进行包装,加快传输的速度.废话少说,先来看服务器端的程序. 1.服务器端 package sterning;import java.io.BufferedInputStream;import java.io.DataInputStream;import java.io.DataOutputStream;impo

linux网络环境下socket套接字编程(UDP文件传输)

今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中,如果我们使用TCP传输,会造成传输速度较慢的情况,所以我们在进行文件传输的过程中,最好要使用UDP传输. 在其中,我们需要写两个程序,一个客户端,一个服务端,在一个终端中,先运行服务端,在运行客户端,在服务端和客户端都输入IP地址和端口号,注意服务端和客户端的端口号要相同,然后选择功能,在linux

Android 用Socket实现PC和手机的文件传输

PC服务器端代码: /* * PC与<a href="http://lib.csdn.net/base/android" class='replace_word' title="Android知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Android</a>客户端实现文件的传送 * PC服务器端 */ package com.<a href="ht

用scala实现一个基于TCP Socket的快速文件传输程序

这是用scala实现的一个简单的文件传输程序. 服务端 package jpush import java.io.{DataInputStream, File, FileOutputStream} import java.net.ServerSocket import scala.collection.JavaConversions._ /** * Created by dingb on 2016/6/3. */ object Server extends App { def port = 88

socket文件传输功能的实现

服务端: #include <stdio.h> #include <winsock2.h> #pragma comment (lib, "ws2_32.lib")  //加载 ws2_32.dll    #define BUF_SIZE 1024    int main(int argc, char *argv[]){     //先检查文件是否存在     char *filename = "Beyond.mp3";//文件名     FI

C#Socket文件传输(发送与接收代码)

这里是发送的代码: SendVarData是转码后发送函数 1 /// <summary> 2 /// 发送文件 3 /// </summary> 4 /// <param name="userName"></param> 5 private void SendFileToClient(string userName) 6 { 7 User targetUser = userListDict[userName]; 8 String tar