三步学会Java Socket编程
转自其他网站
核心提示:第一步
充分理解Socket 1.
什么是socket
所谓socket
通常也称作套接字,用于描述IP
地址和端口,是一个通信链的句柄。应用程序通常通过套接字向网...
推广和普及Java
技术,为国内众多的Java
爱好者提供一个“
平等自由协作创造”
的开放式交流环境,提供Java
专题文
第一步 充分理解Socket
1.
什么是socket
所谓socket
通常也称作"
套接字"
,用于描述IP
地址和端口,是一个通信链的句柄。应用程序通常通过"
套接字"
向网络发出请求或者应答网络请求。
以J2SDK-1.3
为例,Socket
和ServerSocket
类库位于java.net
包中。ServerSocket
用于服务器端,Socket
是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket
实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket
还是ServerSocket
它们的工作都是通过SocketImpl
类及其子类完成的。
重要的Socket API
:
java.net.Socket
继承于java.lang.Object
,有八个构造器,其方法并不多,下面介绍使用最频繁的三个方法,其它方法大家可以见JDK-1.3
文档。
.Accept
方法用于产生"
阻塞"
,直到接受到一个连接,并且返回一个客户端的Socket
对象实例。"
阻塞"
是一个术语,它使程序运行暂时"
停留"
在这个地方,直到一个会话产生,然后程序继续;通常"
阻塞"
是由循环产生的。
.getInputStream
方法获得网络连接输入,同时返回一个IutputStream
对象实例,。
.getOutputStream
方法连接的另一端将得到输入,同时返回一个OutputStream
对象实例。
注意:其中getInputStream
和getOutputStream
方法均会产生一个IOException
,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。
2.
如何开发一个Server-Client
模型的程序
开发原理:
服务器,使用ServerSocket
监听指定的端口,端口可以随意指定(由于1024
以下的
相关文档:
KeywordFilter.java:
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class KeywordFilter
{
private static Pattern pattern = null;
private static KeywordFilter filter = new KeywordF ......
1、commons-math/commons-lang-math
以上两个包是apache下的,前者比后者的功能强大,后者有的功能前都有,后者主要解决平时程序中的一些基本的数学计算,主要是范围判断(*Range),随机数生成(JVMRandom,RandomUtils),分数处理(Fraction),数字转化、大小判断(NumberUtils)等。前者可以处理更复杂的数据分 ......
1 import
2 package
3 修饰符
4 抽象类 接口
5 static
6 String相关
7 javadoc
8 异常
9 日期相关
10 输入输出流
11
一 import
import用于导入不同包中的类,不同包中的类名可以相同。
用*号只能导入一个包,不能使用 import java.* 或者 java.*. ......
每个网页或请求都是一个url地址,一般,这个地址可能是.do,.page,.action之类的并加上'?'号、'&'号查询串等构成的一个长长的的url。很urgly。
一般的url----------------------------------------------------------较好的url
http://www.xxx.net/user/profile.do?id=20001 ====> http://www.xxx.ne ......
Java泛型
由C++的模板函数引入自定义泛型
如下函数的结构很相似,仅类型不同:
int add(int x, int y) { return x + y;}
float add(float x, float y) { return x + y;}
double add(double x ,double y) {return x + y;}
C++用模板函数解决,只写一个通用方法,它可以适应各种类型,示意代码如下:
T add(T x, T y) ......