服务器 <-----> 网络 <------->  客户机

                            第一部分

一.局域网与因特网
服务器是指提供信息的计算机或程序,客户机是指请求信息的计算机或程序,而网络是用于连接服务器的与客户机,实现相互通信。
局域网(Local Area Network ,LAN)指一群通过一定形式连接起来的计算机。
广域网(Wide Area Network , WAN)指由无数的LAN组成,也就是熟称的因特网(Internet)

二.网络协议
网络协议指计算机之间连接的物理,机械,电气(有效的电平范围)等特性。

1.IP协议(Internet Protocol)
Intrenet采用的协议是TCP/IP协议(Transmisssion Control Protocol/Internet Protocol).每一台主机在网络上用为其分配的Internet地址来代表自己,这个地址就是IP地址,目前用4个字节来表示自己,也就是32为的二进制书来表示,称为IPv4,为了方便使用,通常用十进制数表示,如 192.10.0.1  。4个8位二进制最大值也就是 255.255.255.255  。

2.TCP 与 UDP 协议
TCP可以保证从一端数据传送到连接的另一端时,数据能够确实送达,而且抵达的数据的排列顺序和送出的顺序相同,因此TCP协议适合可靠性要求比较高的场合。
HTML,FTP,Telnet等都需要可靠的通信频道。
UDP(User Datagram Protocol ,UDP)无连接通信协议,不保证可靠数据传送。适合对数据准确性要求不高的场合。如网路聊天,在线影片等。

三.端口与套接字
端口指一台计算机只有单一的连接到网络的物理连接,所以的数据都通过此连接对内、对外送达特定的计算机,这就是端口。
那么来看看端口与网络协议有什么关系:
网络协议好比一栋房子,而端口就是房子的那些门,不过这些门有很多,65535个!数据就是从这些门进进出出的。 而这些65536个端口的任务是有所分配,如在TCP协议中的HTTP服务一般使用80端口,FTP服务一般使用21端口。
前面提到的TCP与UDP协议,两种协议不同因此各自的端口号也各自独立,如TCP有220端口,UDP也有220端口,并不冲突。


                                                                                                         第二部分

一 InterAddress类
在java.net包中的InetAddresss类是与IP地址相关的类,利用该类可以获取IP地址,主机地址IP地址等信息。
```

import java.net.*;
public class Address { // 创建类
    public static void main(String[] args) {
        InetAddress ip; // 创建InetAddress对象
        try { // try语句块捕捉可能出现的异常
            ip = InetAddress.getLocalHost(); // 实例化对象(应为这里的    //geiLocalHost() 方法返回的值是InteAddress 对象)
            String localname = ip.getHostName(); // 获取本机名
            String localip = ip.getHostAddress(); // 获取本IP地址
            System.out.println("HostName:" + localname);// 将本机名输出
            System.out.println("HostAddress:" + localip); // 将本机IP输出
        } catch (UnknownHostException e) {
            e.printStackTrace(); // 输出异常信息
        }
    }
}

二.ServerSocket类:
服务器与客户机之间的连接就需要有一个媒介,而ServerSocket类提供了这个媒介,用于表示服务器套接字,主要功能是等待来自网络上的“请求”。
ServerSocke类的accept()方法会会返回一个和客户端Socket对象相连接的Socket对象,当服务器向输出流写入信息时,客户端通过相应的输入流就能读取,反之亦然。getInputStream()方法获得输入流,getOutputStream()方法获得输出流。
三.UDP程序设计:
由上面可知基于UDP的信息传递速度更快。基于UDP通信的基本模式如下:
1.将数据打包(数据包),让后将数据包发送到目的地。
2.接收别的机器发来的数据包,查看数据包。
步骤如下:
发送数据包:
1.使用DatagramSocket()创建一个数据包套接字。
2.使用DatagramPacket(byte[] buf,int offset,int length,InetAddress address,int port)创建要发送的数据包。
3.使用DatagramStorket类的send()方法发送数据包。
接收数据包:
1.使用DatagramStoket(int port)创建数据包套接字,绑定指定端口。
2.使用DatagramPacket(byte[]buf,int lrngth)创建字节数组接收数据包。
3.使用DatagramPacket类的receive()方法接收UDP包。


曾田生z
427 声望34 粉丝

立法者三句修改的话,全部藏书就会变成废纸。——律匠