《Java 网络通信ppt课件》由会员分享,可在线阅读,更多相关《Java 网络通信ppt课件(22页珍藏版)》请在金锄头文库上搜索。
1、Java 网络通信基础知识培训OSInOpen system Interconnectionn它定义了网络通信的基础模型七层模型n物理层(传输介质)n数据链路层(单个链路如何传输数据,ATM )n网络层(IP,IPX)n传输层(TCP,UDP,SPX)n会话层(RPC)n表示层(定义数据格式和加密 )n应用层(Telnet ,http,ftp,NFS,SMTP)FTP 软件的实现n常用端口21nFTP服务端开一个Socket,并占用一个端口 ,客户端建立一个socket,制定IP地址,这 样就可以和服务端进行通信。n有连接的的socketn无连接的socketTCP通信APInSocket中文
2、插座的意识n存在与.*包中TCP通信APInServerSocket.accept()nSocket.getInputStream()nSocket.getOutputStream()ServerS.ServerSocket serverSocket=new .ServerSocket(3456);n InetAddress inta=serverSocket.getInetAddress(). getLocalHost();TCP-socketnpublic class ServerSocket npublic static void main(String args) n beginSoc
3、ket();nnpublic static void beginSocket()ntry n .ServerSocket serverSocket=new .ServerSocket(3456);n InetAddress inta=serverSocket.getInetAddress().getLocalHost();n System.out.println(inta.getHostAddress();n while(true)n Socket socket=serverSocket.accept();n new HelloMessage(socket);n n catch (IOExce
4、ption e) n e.printStackTrace();n n nhelloMessage.javanpublic class HelloMessage extends Thread nprivate Socket socket_ = null;npublic HelloMessage(Socket socket) nthis.socket_ = socket;nthis.start();nclientSocket.javanpublic class ClientSocket npublic static void main(String args) nclientRequest();n
5、nprivate static void clientRequest() ntry nwhile (true) nSocket clientSocket = new Socket(“172.168.4.105“, 3456);nBufferedReader bReader = new BufferedReader(new InputStreamReader(System.in);nSystem.out.println(“please input java or .net or php or end“);nString strLine = bReader.readLine();nif (strL
6、ine != null & !“.equals(strLine) 问题n如何处理很多个人同时访问?TCP 开发实例n多线程TCP服务器n主线程负责侦听新的客户请求,然后新建 一个独立的线程为它服务。主线程和新线 程互不影响。TCP 开发实例n连接池的实现nJavaEE应用服务器和数据库系统之间建立 了很多长期有效的TCP Socket。需要时, 按照算法取出一个,用完了收回来。nDBCPnC3P0美创拨号软件nJava写的oracle存储过程nJava 客户端UDP(用户数据报)n有连接的就像一次通话。n无连接的像是发邮件,多个邮件到达是的 顺序和出发时的顺序不一样。选择n由需求而定n强调可靠
7、性TCPn强调速度和资源消耗UDP(音频,视频)nICQ ,QQUDP(用户数据报)n第四层:传输层n发送报文后,无法得知是否安全到达UDP通信APInDatagramSocketn用于创建接收和发送UDP的Socket实例nDatagramPacketn用于处理报文UDP通信APIn参考javaAPIn实例NIOnJava1.4开始,对java收发网络数据胡强化 肯简单化。n大多数语言,收发网络数据采用 send,recvive或则read,write来实现。而java 通过输入输出流实现,n与日常思维不太吻合的习惯。nNIO 更加直观。NIO框架nXsocketnMina一点忠告n保持初学者心态n系统的学习,建立自己的知识体系n多用脑,少用工具n主动向高手请教n搞清楚技术的来龙去脉n形成自己的软件开发世界观。