java基础复习笔记系列 九 网络编程 -尊龙游戏旗舰厅官网
java基础复习笔记系列之 网络编程
学习资料参考:
1、http://www.icoolxue.com/
2、
1、网络编程的基础概念。
tcp/ip协议;socket编程;ip地址。
中国和美国之间,海底光缆是如何横跨太平洋的。“所谓的铺设,就是直接扔进海里,只不过再扔之前需要勘探光缆经过的地区的年水流数据,海域水深等情况,基本都是扔在水比较浅且水流平稳的地区。”目前,同样有卫星无线通信。
网络通信的协议约束;通信协议的分层思想(编程的时候,无需了解光缆,还是宽带);
在网络编程中,有两个问题:1.如何准确的定位网络上的一台或多台主机。2.如何在两个主机之间进行高效可靠的传输。
两个主机要互相通信:1.要知道双方的ip地址。2.要遵循一定的规则。(osi和tcp/ip)事实上国际标准采用了:tcp/ip。事实上的标准,不是国际定义的标准,是在编程中实际运用的,在网络中跑的就是这一套规则。他们分了四层:网络接口层、ip层、传输层、应用层。
运输层,主要有:tcp/ip协议和udp协议。tcp/ip协议:进程(两个应用程序)之间进行通信时,建立连接,通信,释放连接。udp协议:进程之间不必先建立连接,也就不需要释放连接,故而减少了开销和时延。(qq聊天需要少开销;游戏同步需要避免时延)
域名和ip地址。域名/ip地址:http://www.hp.com / 15.240.238.60.dns负责将域名转换为ip地址。在java.net.*包中,有类inetaddress,它的.gethostname()和.gethostaddress()可以实现域名和ip地址的对应转换。
两个java应用程序通过一个双向的通信链路连接,实现数据交换,这个双向链路的一端称为一个socket。socket通常用来实现client-server的连接。在java.net.*;包中定义了两个类,socket类和serversocket类,其分别用来实现双向连接的client和server端。建立连接时,所需的寻址信息为远程计算机的ip地址和端口号。我们这些是基于tcp的。
一台机器上最多有:65536个端口号。如果一个端口号代表一个应用程序的话,可以有65536个端口。1024是一个分界线;1~1023都是为系统保留的。如:http://www.google.com:80 代表了端口号80.tcp端口有65536个,udp端口同样也有65536个,tcp的8080和udp的8080是不一样的。我们上面说的都是servlet端上的。。。client上的端口是os随机分配的。
我们日常qq语音通讯中的杂音等问题,是由于udp这个无连接协议来决定的。
2、inetaddress类代码练习。
import java.net.*;public class testnet {public static void main(string args[]){ inetaddress address; try { address = inetaddress.getbyname("www.hp.com"); system.out.println(address.tostring()); system.out.println(address.gethostname()); system.out.println(address.gethostaddress()); } catch (unknownhostexception e) { // todo auto-generated catch block e.printstacktrace(); } } }如上,我们通过.gethostname()和.gethostaddress()方法,轻松的实现了域名和ip地址的映射。java号称是internet上的语言,它对很多网络中的东西做了封装好的类,提供了很多的便捷。
3、serversocket和 。
服务器端时刻不停的运行,等待着客户端的连接。所以服务器端的进程是阻塞似的。
4、同时在elcipse运行服务端程序和客户端程序。
参考地址:http://www.oseye.net/user/kevin/blog/280
eclipse中多个console的使用:
在eclipse中开了两个console,但是他们的操作总是同步的。不能搞在同一个项目中,server端和client端要在两个javaproject中,要分开来的。
5、
总结
以上是尊龙游戏旗舰厅官网为你收集整理的java基础复习笔记系列 九 网络编程的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 欢迎访问github地址,并指出项目中的
- 下一篇: lucene实战(第2版)》