网络编程
文章平均质量分 94
最是那一低头的温柔
这个作者很懒,什么都没留下…
展开
-
HTTP协议浅析【转】
后续请求和响应可以通过这个连接发送。整个Web页面(上例中为包含一个基本HTMLL文件和10个图像的页面)自不用说可以通过单个持久TCP连接发送:甚至存放在同一个服务器中的多个web页面也可以通过单个持久TCP连接发送。通常,HTTP服务器在某个连接闲置一段特定时间后关闭它,而这段时间通常是可以配置的。持久连接分为不带流水线(without pipelining)和带流水线(with pipe转载 2014-11-15 16:11:20 · 525 阅读 · 0 评论 -
Apache James 搭建自己的邮件服务器
前提JDK已安装,环境已经配置好。 去官网下载http://james.apache.org/。我的是2.3.2版本的 解压后 进入 bin 目录下的 run.bat文件。启动 出现下面的界面 则成功了[java] view plaincopyUsing PHOENIX_HOME: C:/apach转载 2015-01-04 21:19:17 · 3725 阅读 · 0 评论 -
从Http的连接到WebSocket
1、HTTP协议对长连接的支持以及各浏览器的支持情况http://blog.csdn.net/fenglibing/article/details/71002222、WEB客户端与服务端信息交互的几种方式1)、Flash XMLSocket入门示例:http://en.wikipedia.org/wiki/XMLSocket不足:a)、客户端必须安装 Fla转载 2015-07-20 13:57:11 · 998 阅读 · 0 评论 -
TCP协议中的三次握手和四次挥手(图解)
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:转载 2015-07-20 14:00:17 · 391 阅读 · 0 评论 -
多线程扫描目录
package com.rdt.main;import java.io.File;import java.util.List;import java.util.Queue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.ConcurrentLinkedQueue;import java.util转载 2015-08-11 18:18:43 · 2045 阅读 · 0 评论 -
Java后端WebSocket的Tomcat实现
非常感谢http://blog.chenzuhuang.com/archive/28.html我们知道,传统的HTTP协议是无状态的,每次请求(request)都要由客户端(如浏览器)主动发起,服务端进行处理后返回response结果,而服务端很难主动向客户端发送数据;这种客户端是主动方,服务端是被动方的传统Web模式对于信息变化不频繁的Web应用来说造成的麻烦较小,而对于转载 2015-07-20 14:54:09 · 2795 阅读 · 0 评论 -
Web 通信 之 长连接、长轮询(long polling)
Web 通信 之 长连接、长轮询(long polling)基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性。一、什么是长连接、长轮询?用通俗易懂的话来说,就是客户端不停的向服务器发送请求以获取最新的数据信息。这里的“不停”其实是有停止的,只是我们转载 2015-07-20 14:03:59 · 557 阅读 · 0 评论 -
Spring整合DWR comet 实现无刷新 多人聊天室
十分感谢http://www.cnblogs.com/hoojo/archive/2011/06/08/2075201.html用dwr的comet(推)来实现简单的无刷新多人聊天室,comet是长连接的一种。通常我们要实现无刷新,一般会使用到Ajax。Ajax 应用程序可以使用两种基本的方法解决这一问题:一种方法是浏览器每隔若干秒时间向服务器发出轮询以进行更新,另一种转载 2015-07-20 14:19:19 · 649 阅读 · 0 评论 -
HTML5 History API实现无刷新跳转
在HTML5中, 1. 新增了通过JS在浏览器历史记录中添加项目的功能。 2. 在不刷新页面的前提下显示改变浏览器地址栏中的URL。 3. 添加了当用户单击浏览器的后退按钮时触发的事件。 通过以上三点,可以实现在不刷新页面的前提下动态改变浏览器地址栏中的URL,动态显示页面内容。 比如: 当页面A和页面B内容不一样的时候,在HTML5之转载 2015-07-20 14:30:37 · 3401 阅读 · 0 评论 -
Ajax、Comet与Websocket
从http协议说起1996年IETF HTTP工作组发布了HTTP协议的1.0版本 ,到现在普遍使用的版本1.1,HTTP协议经历了17 年的发展。这种分布式、无状态、基于TCP的请求/响应式、在互联网盛行的今天得到广泛应用的协议,相对于互联网的迅猛发展,它似乎进步地很慢。互联网从兴起到现在,经历了门户网站盛行的web1.0时代,而后随着ajax技术的出现,发展为web应用盛行的web2.0转载 2015-07-20 13:54:22 · 579 阅读 · 0 评论 -
html5利用websocket完成的推送功能
利用websocket和java完成的消息推送功能,服务器用的是tomcat7.0,一些东西是自己琢磨的,也不知道恰不恰当,不恰当处,还请各位见谅,并指出。程序简单来说,就是客户A可以发送消息给客户B,但有很多可以扩展的地方,比如1.如果加入数据库后,A发消息时客户B未上线,服务端将会把消息存在数据库中,等客户B上线后,在将消息取出发送给客户B2.服务端也可发送消息转载 2015-07-20 14:27:17 · 1571 阅读 · 0 评论 -
JavaScript/jQuery WebIM 及时聊天通信工具 本地客户端
WebIM本地客户端,可以发送表情、调整字体、字体大小、字体颜色、加粗、下划线、斜体等;还支持收缩split条,详情等;上UI界面,界面还不够专业,需要美工支持,下一期在做优化!收缩详情 chat.html 代码"-//W3C//DTD HTML 4.01 Transitional//EN"> IM Chat "aut转载 2015-07-20 14:14:52 · 985 阅读 · 0 评论 -
Java EE HTML5 WebSocket 示例
在本教程中,我们将借助于Java EE的WebSocket(服务器端)实现一个HTML5的WebSocket连接。1. 介绍 HTML5给Web浏览器带来了全双工TCP连接websocket标准服务器的能力。 换句话说,浏览器能够与服务器建立连接,通过已建立的通信信道来发送和接收数据而不需要由HTTP协议引入额外其他的开销来实现。转载 2015-07-20 15:13:30 · 863 阅读 · 0 评论 -
TCP协议三次握手过程分析
TCP协议三次握手过程分析TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RS转载 2015-07-20 13:58:40 · 641 阅读 · 0 评论 -
基于Jpcap的Java ARP断网攻击
下面的代码运行前需要安装jpcap,安装方法百度一下很多,不过需要注意版本~代码注释还比较多,部分同学可能还需了解一些计算机网络的知识才能看懂package com.arpattack; import java.io.IOException;import java.net.InetAddress;import java.util.Arrays; import j转载 2015-07-20 15:07:56 · 2216 阅读 · 0 评论 -
Java发送邮件(spring mail + apache mail)
以下是两种邮件发送方式。 给出的例子是是发送HTML格式带附件的邮件。(普通文本格式的邮件基本上可以不关心,现在的邮件都是HTML格式的!) 如果不要发送附件,只要发送单纯的HTML邮件。只要把附件部分去掉即可 [java] view plaincopy/** *用spring mail 发送邮件,依赖jar:spring.j转载 2015-01-04 21:27:20 · 943 阅读 · 0 评论 -
使用synchronized获取互斥锁的几点说明
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17199201 在并发编程中,多线程同时并发访问的资源叫做临界资源,当多个线程同时访问对象并要求操作相同资源时,分割了原子操作就有可能出现数据的不一致或数据不完整的情况,为避免这种情况的发生,我们会采取同步机制,以确保在某一时刻,方法内只允许有一个线程。转载 2015-02-02 14:53:24 · 1833 阅读 · 0 评论 -
Runnable和Thread实现多线程的区别(含代码)
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17161237 Java中实现多线程有两种方法:继承Thread类、实现Runnable接口,在程序开发中只要是多线程,肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下优势: 1、可以避免由于Java的单转载 2015-02-02 14:28:20 · 551 阅读 · 0 评论 -
java网络编程
目录(?)[+]网络基本知识:在java中网络程序有两种协议:TCP和UDP,TCP通过握手协议进行可靠的连接,UDP则是不可靠连接。IP地址:用于标记一台计算机的身份证。IP地址由网络地址(确定网络)和主机地址(网络中的主机)组成。子网掩码:为了区分网络地址和主机地址。IP地址分为A类地址、B类地址、C类地址(常用)、D类地址、E类地址。转载 2014-11-15 15:36:45 · 517 阅读 · 0 评论 -
多线程问题及处理
多线程编程为程序开发带来了很多的方便,但是也带来了一些问题,这些问题是在程序开发过程中必须进行处理的问题。 这些问题的核心是,如果多个线程同时访问一个资源,例如变量、文件等,时如何保证访问安全的问题。在多线程编程中,这种会被多个线程同时访问的资源叫做临界资源。 下面通过一个简单的示例,演示多个线程访问临界资源时产生的问题。在该示例中,启动了两个线程类转载 2014-11-15 15:58:21 · 1291 阅读 · 0 评论 -
java网络编程
网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习。 在 学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的。首先来问一个问题:你 会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛,很简单的事情啊!转载 2014-11-15 15:49:08 · 456 阅读 · 0 评论 -
socket通信
前段时间学习了通信机制,小组做了一个仿QQ的聊天工具,能登录,注册,加好友,私聊,群聊,能玩通信游戏。我完成的任务一个你画我猜的通信游戏的模块,并完成了测试。 本文主要叙述socket的通信机制,关于你画我猜这个模块后续再写出来,这里贴的代码是我完成的模块代码中截取出来的,只为了体现逻辑思路,连贯性可能欠缺请见谅。 我们在局域网下进行socket通信,首先建立一个本机的转载 2014-11-15 15:18:28 · 724 阅读 · 0 评论 -
java装饰流的使用【转】
装饰流使用 除了按照流的方向可以把流划分为输入流和输出流两类,按照流读写数据的基本单位把流划分为字节流和字符流两类以外,还可以按照流是否直接连接实际数据源,例如文件、网络、字节数组等,将流又可以划分为实体流和装饰流两大类。 其中实体流指直接连接数据源的流类,如前面介绍的FileInputStream/FileOutputStream和FileRead转载 2014-11-15 16:02:09 · 530 阅读 · 0 评论 -
Java Socket编程
对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket。服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了。首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通信。这样就有两个Socket了,客户端和服务端转载 2014-11-15 16:27:57 · 487 阅读 · 0 评论 -
【Java TCP/IP Socket】UDP Socket(含代码)
转载请注明出处:http://blog.csdn.net/ns_code/article/details/14128987UDP的Java支持 UDP协议提供的服务不同于TCP协议的端到端服务,它是面向非连接的,属不可靠协议,UDP套接字在使用前不需要进行连接。实际上,UDP协议只实现了两个功能: 1)在IP协议的基础上添加了端口; 2转载 2015-01-29 18:07:48 · 531 阅读 · 0 评论 -
Java 并发
同步访问共享的可变数据许多程序员把同步的概念仅仅理解为一个种互斥的方式,即,当一个对象被一个线程修改的时候,可以阻止另一个线程观察到对象的内部不一致的状态。正确地使用同步可以保证其他任何方法都不会看到对象处于不一致的状态中。这种观点是正确的,但是它并没有说明同步的全部意义。如果没有同步,一个线程的变化就不能被其他线程看到。同步不仅可以阻止一个线程看到对象处于不一致的状态中(即原子性),它还可以转载 2015-01-29 11:42:38 · 529 阅读 · 0 评论 -
Java TCP Socket编程
1.TCP Socket在Java上的实现Java 为 TCP 协议提供了两个类:Socket 类和 ServerSocket 类。一个 Socket 实例代表了TCP 连接的一端。一个 TCP 连接(TCP connection)是一条抽象的双向信道,两端分别由 IP地址和端口号确定。在开始通信之前,要建立一个 TCP 连接,这需要先由客户端 TCP 向服务器端 TCP 发送连接请求。Ser转载 2015-01-29 17:54:34 · 534 阅读 · 0 评论 -
【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17095733挂起和恢复线程 Thread 的API中包含两个被淘汰的方法,它们用于临时挂起和重启某个线程,这些方法已经被淘汰,因为它们是不安全的,不稳定的。如果在不合适的时候挂起线程(比如,锁定共享资源时),此时便可能会发生死锁条件——其他线程在等待该线程转载 2015-01-30 13:46:55 · 513 阅读 · 0 评论 -
【Java并发编程】之一:可重入内置锁
每个Java对象都可以用做一个实现同步的锁,这些锁被称为内置锁或监视器锁。线程在进入同步代码块之前会自动获取锁,并且在退出同步代码块时会自动释放锁。获得内置锁的唯一途径就是进入由这个锁保护的同步代码块或方法。 当某个线程请求一个由其他线程持有的锁时,发出请求的线程就会阻塞。然而,由于内置锁是可重入的,因此如果摸个线程试图获得一个已经由它自己持有的锁,那么这个请求就会成功。“重入”意味转载 2015-01-30 13:36:43 · 439 阅读 · 0 评论 -
【Java并发编程】之二:线程中断(含代码)
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17091267使用interrupt()中断线程 当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返回。这里需要注意的是,如果只是单纯的调用inter转载 2015-01-30 13:43:41 · 414 阅读 · 0 评论 -
【Java并发编程】之四:守护线程与线程阻塞的四种情况
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17099981 守护线程 Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用户线程即运行在前台的线程,而守护线程是运行在后台的线程。 守护线程作用是为其他前台线程的运行转载 2015-01-30 13:56:39 · 481 阅读 · 0 评论 -
volatile变量修饰符—意料之外的问题(含代码)
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17101369 volatile用处说明 在JDK1.2之前,Java的内存模型实现总是从主存(即共享内存)读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下volatile关键字的使用变得非常重要。在当前的Java内存模型下转载 2015-02-02 14:16:42 · 859 阅读 · 0 评论 -
Java多线程-并发协作(生产者消费者模型)
对于多线程程序来说,不管任何编程语言,生产者和消费者模型都是最经典的。就像学习每一门编程语言一样,Hello World!都是最经典的例子。实际上,准确说应该是“生产者-消费者-仓储”模型,离开了仓储,生产者消费者模型就显得没有说服力了。对于此模型,应该明确一下几点:1、生产者仅仅在仓储未满时候生产,仓满则停止生产。2、消费者仅仅在仓储有产品时候才能消费,仓空则等待。3、当转载 2015-08-18 14:47:49 · 541 阅读 · 0 评论