- 博客(13)
- 资源 (7)
- 收藏
- 关注
原创 C/S+P2P网络模型(二)--上传&下载文件
上一篇文章我们实现聊天的功能,下面我们看文件传输怎么实现。我的做法是:增加一个文件服务器,所有上传和下载文件的操作都由文件服务器来处理。因此处理逻辑是这样的:如果用户请求上传文件或者下载文件,那么就将用户直接与文件服务器通信,而不用经过中央服务器。所以现在的问题是知道java怎么实现上传和下载文件,如果这个问题解决了,那基本就搞定了。首先,文件传输基本都是用面向连接的方式。因为无连
2014-03-20 23:30:57 5509
原创 C/S+P2P网络模型(一)--聊天
从今天开始我们来实现一个C/S+P2P网络模型,主要功能包括:聊天和传输文件。聊天分群聊和私聊,虽然不是真的像QQ那样有个QQ群,但是这样类比容易理解,在后面我们会仔细说明。前面我写过一篇文章讲过组播,我们就用组播来实现p2p网络模型。首先而且是最关键的一点是:每一个程序实例都对应一个peer结点。接下来我们先来解释整个程序代码框架,再分聊天和传输文件详细说明。我们先看整个程序框架。
2014-03-20 02:46:17 5418
原创 Java实现局域网内单播
前面我写过一篇文章讲java实现组播,今天我们就来看看java怎么实现局域网内单播。我们先来补充一下网络编程的两个要点:1. 我们以进程为对象来看待问题会比较简单一点。进程是最小的程序单元,而网络进程在建立网络连接的时候会占用一个端口。2. 我们所说的单播和组播,其实都是进程间通信。所以实现单播最重要的是指定IP地址和进程端口。如果是本机测试,IP地址相
2014-03-19 01:57:31 2873
原创 使用MulticastSocket实现组播
多播技术是一种允许一台或多台主机在同一时间发送单一的数据包到多台主机的网络技术。多播源将数据包发送到特定多播组,只有属于该多播组的主机才能接收到数据包。这些主机可以是在同一个物理网络,也可以来自不同的物理网络(只要有多播路由器支持)。很明显多播是无连接和不可靠的,所以它使用UDP协议。我们说过使用MulticastSocket类,这个类叫多播数据报套接字类,主要用于发送和接收IP多
2014-03-16 20:56:58 4189
原创 在页面中调用搜索引擎
今天突然想到,在自己的页面中调用google、百度这样强大的搜索引擎想必很酷。于是上网查了资料,没想到就几行代码的事。下面是调用百度的一个代码段: 调用百度引擎 怎么样?够简短吧,还想着有多难呢。百度官方还给了更详细的说明。还有,如果想看更多的引擎调用,请看这篇博客http://w
2014-03-16 02:25:31 2738
原创 python实现聊天室--C/S模式
最简单的模式--C/S模式实现聊天室从半双工开始,何谓半双工?半双工即是说双方可以互发消息,但一次只能一个用户发送。 只要稍微会点socket编程的人都会觉得很简单,所以过过场,直接上代码。服务器端代码:from socket import *from time import ctimeHOST = ''PORT = 4568BUFSIZE = 1024ADDR = (
2014-03-15 15:09:43 5071 1
原创 python多线程编程(二)--threading模块
上一篇文章讲thread模块的使用,我们接下来看threading模块怎么使用。threading模块对象对象描述Thread一个线程的执行对象Lock锁对象RLock可重入锁对象,使单线程可以再次获得已经获得了的锁(递归锁定)Condit
2014-03-15 10:37:54 2591
原创 python多线程编程(一)--thread模块
python提供两个模块支持多线程编程:thread和threading。thread模块函数函数描述start_new_thread(function,args,kwargs=None)产生一个新线程,在新线程中用指定参数和可选的kwargs调用function函数allocate_lock()分
2014-03-15 01:57:06 7684
原创 linux安装新版本python
我的机子是ubuntu12.04,自带python2.7.6.这段时间在网上看到一些源码要用到python3的新特性,所以只能装一个python3.但是我还想留着2.7.6,以方便开发的时候测试用。怎么办呢?下面看具体步骤:首先,下载python3.3.5的源码包:http://www.python.org/ftp/python/3.3.5/Python-3.3.5.tar.xz解
2014-03-14 00:32:50 1615
原创 django用表单实现图片爬虫
这一次讲django实现的爬虫,而且是爬图片。爬图片会有两个问题:1. 爬到的图片怎么保存?2. 怎么将爬到的图片显示在页面上?接下来我们一一解答。第一,我们要将爬到的图片显示出来,那就要图片的链接,所以我们只要保存图片的原地址就可以了。第二,django中的for标签会帮我们新建元素并将元素添加到文档流中。举个例子,{% for item in
2014-03-10 22:50:32 1879
原创 django表单处理(二)--数据验证
上一篇讲到最简单的表单处理,就将输入的字符串输出了。这么简单的表单处理可不行,接下来我们以一个用户注册的例子说明怎么验证数据。验证数据要用到django.forms模块。首先我们在templates目录下新建一个forms.py文件,添加代码:#-*- coding: utf-8 -*-from django import formsclass AccountForm(for
2014-03-10 00:28:08 2897
原创 django表单处理(一)--最简单的表单
是时候讲django的表单处理了。最简单的表单处理就是从输入框中提取字符串,交给后台进行数据处理并返回相应结果。本着简单入门的原则,今天设计的表单就只有一个文本框和一个按钮。在templates目录下新建一个test01.html文件 django表单处理 body, div { padding: 0; margin: 0; } #containe
2014-03-10 00:23:04 3630 1
转载 sublime text 3解放鼠标的快捷键总结
Ctrl+D 选词 (反复按快捷键,即可继续向下同时选中下一个相同的文本进行同时编辑)Ctrl+G 跳转到相应的行Ctrl+J 合并行(已选择需要合并的多行时)Ctrl+L 选择整行(按住-继续选择下行)Ctrl+M 光标移动至括号内开始或结束的位置Ctrl+T 词互换Ctrl+U 软撤销Ctrl+P 查找当前项目中的文件和快速搜索;输入 @ 查找文件主标题/函数;或者
2014-03-07 16:36:38 1078
EasyBCD2.1.2.zip
2012-11-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人