Java 网络程序设计 笔记

1. java.netapi分类

    处理url

    处理主机名称和IP地址

    处理tcp通信协议

    处理udp通信协议

    处理网络及权限

    内容处理器 contentHandler

2. 基本的服务器流程

服务器端

    1)建立 ServerSocket  调用accept 监听客户端

    2)建立socket链接, 通过 InputStream和OutputStream进行通信

客户端

    1)建立Socket(服务器主机名,端口)

    2)和服务器通信

    3)关闭socket

3. SMTP通信协议

    电子邮件不是及时响应,实现方法就是spooling处理(暂存器),发信人:发信人界面——》发信人邮件服务器——》spooling——》收信人服务器——》收信人。 

    执行步骤(参考相关内容):SMTP程序一般为客户端

4. POP3通信协议

    1)与服务器建立链接

    2)进行身份验证

    3)处理邮件事务(start  list  retrieve  delete  reset  top等)

    4)执行quit指令,结束连接前更新服务器

5. 服务器端的FTP通信协议

    FTP 通过在服务器和客户端建立两个链接,一个以端口21作为通信链接,一个接收到传输指令建立,实现客户端发送指令和服务器端响应结果

服务器端:

分为协议解释器和数据传输 DTP两个模块,前者建立服务器端socket 以侦听并接收客户端的链接请求,DTP专门处理FTP指令,并将执行结果和信息发到客户端

客户端:

分为协议解释器和数据传输过程及用户界面三个模块,协议解释器用来和数据库建立链接,DTP将FTP指令发送往客户单,并接收服务器端的响应;用户界面提供用户与协议解释器的交互接口

FTP传输步骤:

        1)建立socket链接,使用21端口

        2)进行用户验证

        3)登陆成功后,就可以输入FTP指令到客户端,如输入get<文件名>

        4)发送quit指令结束FTP链接

注意事项

    1)处理多人链接(多线程)  concurrent的线程池

    2)FTPClient可执行相应的指令函数获得结果

6. HTTP协议

特点:

另一种C/S应用,属于无状态链接,解决方法是cookie和session

处理流程:

    1) 建立http通信链接,如http://www.baidu.com

    2) 浏览器将网址转换为http头 传送到web服务器处理

    3) web服务器处理传递的http方法,客户端资源是否存在,并回写到客户端

    4)请求处理后,web服务器终止链接

7. 聊天程序

服务器

利用serversocket产生socket,以等待用户的链接,并接收来自用户端的信息,并将其传给其他客户端,实现:

    1)使用hashmap记录链接的客户端

    2)当发送数据时,通过socket获得对应的 outData, 通过outData.writeUTF 发送数据

    3)中断连接时,先通过 remove删除hashmap中数据,再关闭client

客户端

利用socket和服务器建立链接,实现基本类似于sokcet客户端,使用readUTF和writeUTF 接收和发送信息

8. 网络游戏

服务器端:

多人连线;处理各种预先定义好的指令与游戏逻辑; 将信息发送到所有链接的客户端(逻辑因游戏而定) 

客户端:

用户接口处理(鼠标支持,信息显示等),游戏逻辑

关系: 

图形等在客户端显示,服务器负责传递对手的信息,客户端接收信息,并在本地做相应改变

9. JSSEHTTPS服务器

    SSL提供 数据加密、数据签名(fingerprint和秘钥信息)、建立安全连接

JSSE

java中支持SSL和TLS通信安全的API包,提供了数据加密、客户端身份认证、服务器端身份认证和消息完整性功能,如:

    1)建立服务器和客户端的secure socket: SSLServerSocket   SSLSocket   SSLServerSocketFactory   SSLSocketFactory

    2)处理SSL连接的session

    3)处理客户端和服务器端的ssl handshake程序

    4)处理数字签名的证书验证 DSA RSA: cert包

服务器端

    1)建立服务器端 secure socket   SSLServerSocketFactory ssf=SSLServerSocketFactory.getDefault();   ssf.createServerSocket();

    2)接收客户端socket   serversocket.accept

    3)服务器接收并发送信息

    4)服务器关闭连接

客户端

    1)建立服务器端socket

    2)发送和接收信息

    3)关闭

Https服务器程序:

    1)设置 security provider    security.provider.3=com.sun.net.ssl.internal.ssl.provider

    2)取得公钥  keystore.get

    3)设置公钥属性    命令行或程序中设定

    4)编写服务器和客户端程序

多线程实现

    使用  java的concurrent 库,参考

        工程: 不用的工程\Java Server和Client工程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值