网络编程

来源:互联网 发布:ch341a编程器软件 编辑:程序博客网 时间:2024/06/07 08:36
一,网络基础
    网络通信协议:
         TCP/IP协议:TCP(Transmission Control Protocol,传输控制协议),IP(Internet Protocol,网际协议)。
HTTP协议:HTTP(Hypertext Transfer Protocol,超文本传输协议)。
FTP协议:FTP(File Transfer Protocol,文件传输协议)。
SMTP协议:SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)。
UDP协议:UDP (User Datagram Protocol)用户数据报协议。


    IP与端口:
IP地址:每台计算机在网络中都有一个唯一的标识号,就是IP地址。用32位的二进制数来表示,称为Ipv4。IP地址格式:为了方便记忆和使用,我们通常取用十进制表示,每个字节之间用”.”隔开。如192.168.0.1。127.0.0.1代表本机,最后一位255代表广播地址。   对应的类为InetAddress,常用的方法分为获取该对象的静态方法和一般获取信息的方法。


端口号:端口是一个整数,它的范围是0~65535之间。而0~1023之间是一些知名的网络服务和应用使用的,系统也有使用。我们使用最好大于3000以上的端口。


域名:便于记忆的、字符串形式。如”www.163.com”.与IP地址间存在映射关系。由位于网络中的域名服务器(DNS)负责将域名解析为对应的IP地址。解析时先走本机的DNS解析(C:\Windows\System32\drivers\etc\hosts文件),如果没有再走互联网的DNS解析。


二,Socket
      套接字,表示一个系统的IP地址和端口号的结合,TCP/IP连接的端点,用来成立两个流对象,通信的两端会有Socket。
      常用的方法:两种构造方法,close,getInetAddress,getInputStreaam,getOutputStream


三,TCP
      在进行通信之前会有 “三次握手”,握手成功会在通信的两端建立Scoket。两端一个被称为服务端,一个被称为客户端。
      服务端使用的是ServerSocket,客户端使用的是Socket。
      编程的基本步骤(服务端为例):
1,先创建服务端ServerSocket服务,在创建时要绑定端口号。2,通过ServerSocket的accept方法获取客户端的Socket。3,对客户端Socket的进行读写操作。4,关闭 资源。


四,UDP

      通信前不需要握手,连接是不可靠的。连接的两端一般称为发送端,接收端。


      操作的类:
DatagramSocket:此类表示用来发送和接收数据报包的套接字。常用的方法:close,receive,send .... 。发送和接受的参数都是DatagramPacket。
DatagramPacket:此类表示数据报包。注意该类的构造函数,代表发送和接受的形式。getData,gatLength....

     

编程的基本思路(接收端为例):

1,创建DatagramSocket对象以及接受形式的DatagramPacket对象。2,接受发送端的DatagramPacket。3,读去数据。4,关闭资源。


五,TCP和UDP的区别
        TCP面向连接,UDP不面向连接。
        TCP连接稳定,UDP连接不稳定。
        TCP传输速度慢,UDP传输速度快。


六,URL
        代表一个统一资源定位符,它是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。

        

相同的还有:

URI:表示一个统一资源标识符 (URI) 引用。 

URN:表示一个统一资源名称。


        常用方法:
InputStream openStream() 打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。 实现方式为使用本类的openConnection()。getInputStream()方法取得的。
URLConnection openConnection()  返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。 一般操作使用这个,可以获取输入输出流。


七,URLConnection
        常用方法:
OutputStream getOutputStream() ,返回写入到此连接的输出流。 
InputStream getInputStream() ,返回从此打开的连接读取的输入流。 
用这两个操作方便多了。
........


八,网络结构
     C/S模型:Clinet/Server,两端的代码都得写,成本高,维护难度大。但是客户端可以再本地分担一些运算。
     B/S模型:Boswer/Server,优缺点和上面的相反。
原创粉丝点击