5.13

来源:互联网 发布:万方免费数据库查询 编辑:程序博客网 时间:2024/06/09 20:20

计算机网络基础

概述

利用通信线路和通信设备,把地理上分散并且具有独立功能的多个计算机系统互相连接,按照网络协议进行数据通信,通过功能完善的网络软件实现资源共享的计算机系统的集合。

功能:数据通信

     资源共享

     负荷均衡和分布处理

组成与逻辑结构:计算机网络系统包括硬件和软件两大部分:  硬件负责数据处理和转发,包括计算机系统、通信设备和通信线路

             组成计算机网络的四大要素:计算机系统    软件负责控制数据通信和各种网络应用,包括网络协议和网络软件

                                   通信线路和通信协议     

                                   网络协议

                                   网络软件

网络的拓扑结构

网络中连接网络设备的物理线缆铺设的几何形状,用以表示网络形状。

①总线型②星形③环形④树状⑤网状


计算机网络逻辑上由资源子网和通信子网两大部分组成,

资源子网——>面向应用的数据处理,实现网络资源的共享

通信子网——>面向数据通信处理和通信控制


JAVA

网络

java.net.URLConnection

写入Web服务器


使用URLConnection——>发送HTTP请求

URL url = new URL("http://www.mydomain.com/form.jsp);

URLConnection connection = url.openConnection();

connection.setDoOutput(true);

PrintWriter out = new PrintWriter(connection.getOutputStream());

out.println("firstName=joe");

out.println("lastName=Average");

out.close();

给http://www.mydomain.com/form.jsp 页面发送了一个表格


java,net,Socket

套接字——>网络连接的一个端点,使得应用程序可以从网络读取和写入网络。


public Socket(java,lang.String host, int port)

host为远程机器名或者IP地址

port为远程应用程序的端口号


new Socket("yahoo.com", 80)——>Socket 对象

连接到端口80的yahoo.com


Socket类实例——>发送/接收,字节流

发送字节流,必须先调用 Socket类的 getOutputStream 方法——>获取java.io.OutputStream 对象


把文本发送到远程应用程序,从返回的OutputStream对象——>构造java.io.PrintWriter对象


要从连接的另一端接收字节流,就调用Socket类的getInputStream 方法,该方法返回一个java.io.InputStream


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;

public class SocketTest {
        public static void main(String[] args) {
                String host = "books.brainysoftware.com";
                String protocol = "http";
                try {
                      Socket socket = new Socket(protocol + "://" + host,80);
                      OutputStream os = socket.getOutputStream();
                      boolean autoflush = true;
                      PrintWriter out = new
                                    PrintWriter(socket.getOutputStream(),autoflush);
                      BufferedReader in = new BufferedReader (
                                   new InputStreamReader(socket.getInputStream()));

                      // send an HTTP request to the web server
                      out.println("GET / HTTP/1.1");
                      out.println("Host: " + host + ":80");
                      out.println("Connection: Close");
                      out.println();
 
                      // read the response
                      boolean loop = true;
                      StringBuilder sb = new StringBuilder(8096);
                      while (loop) {
                            if (in.ready()) {
                                 int i = 0;
                                 while (i != -1) {
                                         i = in.read();
                                         sb.append((char) i);
                                 }
                                 loop = false;
                           }
                      }
 
                      // display the response to the out console
                      System.out.println(sb.toString());
                            socket.close();
                      } catch (IOException e) {
                            e.printStackTrace();
                }
        }
}

返回结果

F:\gz\JAVA\wl>java SocketTest
java.net.UnknownHostException: http://books.brainysoftware.com
        at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
        at java.net.PlainSocketImpl.connect(Unknown Source)
        at java.net.SocksSocketImpl.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at SocketTest.main(SocketTest.java:13)


java.net.ServerSocket

Socket 类表示 客户端套接字 ——>要连接到远程服务器应用程序时构造的套接字

ServerSocket——>服务器套接字的实现


public ServerSocket (int port, int bakLog, InetAddress bindingAddress);

上述构造器绑定的地址必须是java.net.InetAddress的一个实例


构造InetAddress对象的一个办法是通过调用它的getByName静态方法,传递包含主机名称的String

InetAddres.getByName("127.0.0.1");


new ServerSocket(8080, 1, InetAddress.getByName("127.0.0.1"));

构造了一个在监听本机8080端口的ServerScoket,待办属性为1


Web服务器应用程序

——>HttpServer

——>Request

——>Response


HttpServer类

——>Web服务器



SQL

替代主键(surrogate key)——>无意义主键(meaningless primary key)

每一行分配一个唯一的数字,该数字无内在意义,只是行或行所代表的对象的方便的名字

附加列(tie-breaker column

包含一个以上的列的主键——>复合主键(composite key)

0 0