当前位置: 首页 > news >正文

哪个网站建设公司泸州网站建设唐网互联

哪个网站建设公司,泸州网站建设唐网互联,网页设计与网站建设期末考试试卷,广州天河区是富人区吗网络程序设计基础 局域网与互联网 为了实现两台计算机的通信#xff0c;必须用一个网络线路连接两台计算机。如下图所示 网络协议 1.IP协议 IP是Internet Protocol的简称#xff0c;是一种网络协议。Internet 网络采用的协议是TCP/IP协议#xff0c;其全称是Transmission…网络程序设计基础 局域网与互联网 为了实现两台计算机的通信必须用一个网络线路连接两台计算机。如下图所示 网络协议 1.IP协议 IP是Internet Protocol的简称是一种网络协议。Internet 网络采用的协议是TCP/IP协议其全称是Transmission Control Protocol/Internet Protocol。Internet 依靠TCP/IP协议在全球范围内实现了不同硬件结构、不同操作系统、不同网络系统间的互联。在Internet 网络上存在着数以亿计的主机每台主机都用网络为其分配的 Internet 地址代表自己这个地址就是I地址。到目前为止I地址用4个字节也就是32位的二进制数来表示称为IPv4。为了便于使用通常取用每个字节的十进制数并且每个字节之间用圆点隔开来表示I地址如192.168.1.1。现在人们正在试验使用16个字节来表示I地址这就是IPv6但IPv6还没有投入使用。 TCP/IP 模式是一种层次结构共分为4层分别为应用层、传输层、互联网层和网络层。各层实现特定的功能提供特定的服务和访问接口并具有相对的独立性如图所示。 2. TCP与UDP协议 在TCPAIP 协议栈中有两个高级协议是网络应用程序编写者应该了解的即传输控制协议(Transmission Control ProtocolTCP)与用户数据报协议User Datagram Protocol UDP。 TCP 协议是一种以固接连线为基础的协议它提供两台计算机间可靠的数据传送。TCP可以保证数据从一端送至连接的另一端时能够确实送达而且抵达的数据的排列顺序和送出时的顺序相同。因此TCP协议适合可靠性要求比较高的场合。就像拨打电话必须先拨号给对方等两端确定连接后相互才能听到对方说话也知道对方回应的是什么。 HTTP、FTP 和Telnet 等都需要使用可靠的通信频道。例如HTTP从某个URL读取数据时如果收到的数据顺序与发送时不相同可能就会出现一个混乱的HTML文件或是一些无效的信息。 UDP是无连接通信协议不保证数据的可靠传输但能够向若干个目标发送数据或接收来自若干个源的数据。UDP以独立发送数据包的方式进行。这种方式就像邮递员送信给收信人可以寄出很多信给同一个人且每一封信都是相对独立的各封信送达的顺序并不重要收信人接收信件的顺序也不能保证与寄出信件的顺序相同。 UDP 协议适合于一些对数据准确性要求不高但对传输速度和时效性要求非常高的网站如网络聊天室、在线影片等。这是由于TCP协议在认证上存在额外耗费可能使传输速度减慢而UDP协议即使有一小部分数据包遗失或传送顺序有所不同也不会严重危害该项通信。 端口与套接字 一般而言一台计算机只有单一的连到网络的物理连接Physical Connection所有的数据都通过此连接对内、对外送达特定的计算机这就是端口。网络程序设计中的端口port并非真实的物理存在而是一个假想的连接装置。端口被规定为一个在0~65535的整数。HTTP服务一般使用80端口,FTP 服务使用21端口。假如一台计算机提供了HTTP、FTP等多种服务那么客户机会通过不同的端口来确定连接到服务器的哪项服务上如图所示。 通常0~1023的端口数用于一些知名的网络服务和应用用户的普通网络应用程序应该使用1024以上的端口数以避免端口号与另一个应用或系统服务所用端口冲突。 网络程序中的套接字Socket用于将应用程序与端口连接起来。套接字是一个假想的连接装置就像插座一样可连接电器与电线如图所示。 Java 将套接字抽象化为类程序设计者只需创建Socket类对象即可使用套接字。 TCP程序 TCP网络程序设计是指利用Socket 类编写通信程序。利用TCP协议进行通信的两个应用程序是有主次之分的一个称为服务器程序另一个称为客户机程序两者的功能和编写方法大不一样。服务器端与客户端的交互过程如图所示。 服务器程序创建一个 ServerSocket服务器端套接字对象调用accept0方法等待客户机来连接 客户端程序创建一个Socket对象请求与服务器建立连接 服务器接收客户机的连接请求同时创建一个新的Socket 对象与客户建立连接。随后服务器继续等待新的请求 InetAddress 类 java.net包中的InetAddress类是与IP地址相关的类利用该类可以获取IP地址、主机地址等信息。 例题21.1 import java.net.*;                                        //导出Java.net包   public class Address {                                    //创建类       public static void main(String[] args) {         InetAddress ip;                                    //创建InetAddress对象         try {                                            //捕捉可能出现的异常             ip InetAddress.getLocalHost();            //实例化对象             String locaIname ip.getHostName();        //获取本机名             String localip ip.getHostAddress();        //获取本机IP地址             System.out.println(本机名locaIname);        //将本机名输出             System.out.println(本机名IP地址localip);    //将本机IP地址输出         }catch(UnknownHostException e){             e.printStackTrace();                        //输出异常信息         }              }   }//例题21.1 运行结果如下 ServerSocket 类 ServerSocker 类的构造方法通常会抛出1OException异常具体有以下几种形式 ServerSocket()创建非绑定服务器套接字。 ServerSocket(int port)创建绑定到特定端口的服务器套接字。 ServerSocket(int port, int backlog利用指定的backlog创建服务器套接字并将其绑定到指定的本地端口号上。 ServerSocket(int port, int backlog, InetAddress bindAddress)使用指定的端口、侦听backlog和要绑定到的本地IP地址创建服务器。这种情况适用于计算机上有多块网卡和多个I地址的情况用户可以明确规定ServerSocket在哪块网卡或哪个IP地址上等待客户的连接请求。 ServerSocket 类的常用方法如表21.2所示。 TCP网络程序设计 例题21.2 import java.io.*; import java.net.*;   public class MyServer {     private ServerSocket server; // 服务器套接字     private Socket socket; // 客户端套接字       void start() {// 启动服务器         try {             server new ServerSocket(8998); // 服务器启用8998端口             System.out.println(服务器套接字已经创建成功);             while (true) {                 System.out.println(等待客户端的连接);                 socket server.accept(); // 服务器监听客户端连接                 // 根据套接字字节流创建字符输入流                 BufferedReader reader new BufferedReader(new InputStreamReader(socket.getInputStream()));                 while (true) {// 循环接受信息                     String message reader.readLine();// 读取一行文本                     if (exit.equals(message)) {// 如果客户端发来的内容为“exit”                         System.out.println(客户端退出);                         break;// 停止接受信息                     }                     System.out.println(客户端: message);                 }                 reader.close(); // 关闭流                 socket.close(); // 关闭套接字             }         } catch (IOException e) {             e.printStackTrace();         }     }       public static void main(String[] args) {         MyServer tcp new MyServer();         tcp.start(); // 启动服务器     } } //21.2 运行结果如下 编写客户端程序将用户在文本框中输入的信息发送至服务端并将文本框中输入的信息显示再客户端的文本域中。 import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.Socket; import javax.swing.*;   public class MyClient extends JFrame {     private PrintWriter writer;// 根据套接字字节流创建的字符输出流     Socket socket; // 客户端套接字     private JTextArea area new JTextArea();// 展示信息的文本域     private JTextField text new JTextField(); // 发送信息的文本框       public MyClient() {         setTitle(向服务器送数据);         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);         Container c getContentPane(); // 主容器         JScrollPane scrollPane new JScrollPane(area);// 滚动面板         getContentPane().add(scrollPane, BorderLayout.CENTER);         c.add(text, South); // 将文本框放在窗体的下部         text.addActionListener(new ActionListener() {// 文本框触发回车事件             public void actionPerformed(ActionEvent e) {                 writer.println(text.getText().trim()); // 将文本框中的信息写入流                 area.append(text.getText() \n); // 将文本框中的信息显示在文本域中                 text.setText(); // 将文本框清空             }         });     }       private void connect() { // 连接服务器方法         area.append(尝试连接\n); // 文本域中提示信息         try {             socket new Socket(127.0.0.1, 8998); // 连接本地计算机的8998端口             writer new PrintWriter(socket.getOutputStream(), true);             area.append(完成连接\n);         } catch (IOException e) {             e.printStackTrace();         }     }       public static void main(String[] args) {         MyClient clien new MyClient();         clien.setSize(200, 200); // 窗体大小         clien.setVisible(true); // 显示窗体         clien.connect(); // 连接服务器     } } //21.2 运行结果如下 UDP程序 基于 UDP通信的基本模式如下 将数据打包称为数据包然后将数据包发往目的地。 接收别人发来的数据包然后查看数据包。 发送数据包的步骤如下 1使用DatagramSocketO创建一个数据包套接字。 2)使用DatagramPacket(byte[] buf,int offset, int length,InetAddress address,int port)创建要发送的数据包。 3)使用DatagramSocket 类的sendO方法发送数据包。 接收数据包的步骤如下 1使用DatagramSocket(int port)创建数据包套接字绑定到指定的端口。 (2使用 DatagramPacket(byte buf, int length)创建字节数组来接收数据包。 3使用DatagramPacket 类的receive0方法接收UDP包。 DatagramPacket类 java.net 包的DatagramPacket 类用来表示数据包。DatagramPacket 类的构造方法如下: DatagramPacket(byte[] buf, int length) DatagramPacket(bytel] buf, int length, InetAddress address, int port) 第一种构造方法在创建DatagramPacket 对象时指定了数据包的内存空间和大小。 第二种构造方法不仅指定了数据包的内存空间和大小还指定了数据包的目标地址和端口。 DatagramSocker 类 java.net 包中的() DatagramSocket(int port) DatagramSocket(int port, InetAddress addr) 第一种构造方法创建DatagramSocket对象构造数据报套接字并将其绑定到本地主机任何可用的端口上。 第二种构造方法创建DatagramSocket对象创建数据报套接字并将其绑定到本地主机的指定端口上。 第三种构造方法创建DatagramSocket对象创建数据报套接字并将其绑定到指定的端口和指定的本地地址上。第三种构造函数适用于有多块网卡和多个I地址的情况。 UDP网络程序设计 例题21.3 1广播主机程序不断地向外播放信息代码如下 import java.io.IOException; import java.net.*;   public class Notification extends Thread {     String weather 节目预报八点有大型晚会请收听;// 发送的消息     int port 9898; // 端口     InetAddress iaddress null;     MulticastSocket socket null; // 多点广播套接字       Notification() {         try {             iaddress InetAddress.getByName(224.255.10.0); // 实例化InetAddress指定地址             socket new MulticastSocket(port); // 实例化多点广播套接字             socket.setTimeToLive(1); // 指定发送范围是本地网络             socket.joinGroup(iaddress); // 加入广播组         } catch (IOException e) {             e.printStackTrace(); // 输出异常信息         }     }       public void run() {         while (true) {             DatagramPacket packet null; // 数据包             byte data[] weather.getBytes(); // 字符串消息的字节数组             packet new DatagramPacket(data, data.length, iaddress, port); // 将数据打包             System.out.println(weather); // 控制台打印消息             try {                 socket.send(packet); // 发送数据                 sleep(3000); // 线程休眠             } catch (IOException e) {                 e.printStackTrace();              } catch (InterruptedException e) {                 e.printStackTrace();             }         }     }       public static void main(String[] args) {          Notification w new Notification();         w.start(); // 启动线程     } } //21.3 运行结果如下 2接收广播程序。单机“开始接收”按钮系统开始接收主机播出的信息单机“停止接收”按钮系统停止接收广播主机播出的信息。代码如下 import java.awt.*; import java.awt.event.*; import java.io.IOException; import java.net.*; import javax.swing.*;   public class Receive extends JFrame implements Runnable, ActionListener {     int port; // 端口     InetAddress group null; // 广播组地址     MulticastSocket socket null; // 多点广播套接字对象     JButton inceBtn new JButton(开始接收);     JButton stopBtn new JButton(停止接收);     JTextArea inceAr new JTextArea(10, 10); // 显示接收广播的文本域     JTextArea inced new JTextArea(10, 10);     Thread thread;     boolean stop false; // 停止接受信息状态       public Receive() {         setTitle(广播数据报);         setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);         thread new Thread(this);         inceBtn.addActionListener(this); // 绑定按钮ince的单击事件         stopBtn.addActionListener(this); // 绑定按钮stop的单击事件         inceAr.setForeground(Color.blue); // 指定文本域中文字的颜色         JPanel north new JPanel(); // 创建Jpanel对象         north.add(inceBtn); // 将按钮添加到面板north上         north.add(stopBtn);         add(north, BorderLayout.NORTH); // 将north放置在窗体的上部         JPanel center new JPanel(); // 创建面板对象center         center.setLayout(new GridLayout(1, 2)); // 设置面板布局         center.add(inceAr); // 将文本域添加到面板上         center.add(inced);         add(center, BorderLayout.CENTER); // 设置面板布局         validate(); // 刷新         port 9898; // 设置端口号         try {             group InetAddress.getByName(224.255.10.0); // 指定接收地址             socket new MulticastSocket(port); // 绑定多点广播套接字             socket.joinGroup(group); // 加入广播组         } catch (IOException e) {             e.printStackTrace(); // 输出异常信息         }         setBounds(100, 50, 360, 380); // 设置布局         setVisible(true); // 将窗体设置为显示状态     }       public void run() { // run()方法         while (!stop) {             byte data[] new byte[1024]; // 创建缓存字节数组             DatagramPacket packet null;             packet new DatagramPacket(data, data.length, group, port); // 待接收的数据包             try {                 socket.receive(packet); // 接收数据包                 String message new String(packet.getData(), 0, packet.getLength()); // 获取数据包中的内容                 inceAr.setText(正在接收的内容\n message); // 将接收内容显示在文本域中                 inced.append(message \n); // 每条信息为一行             } catch (IOException e) {                 e.printStackTrace(); // 输出异常信息             }         }     }       public void actionPerformed(ActionEvent e) { // 单击事件         if (e.getSource() inceBtn) { // 单击按钮ince触发的事件             inceBtn.setBackground(Color.red); // 设置按钮颜色             stopBtn.setBackground(Color.yellow);             if (!(thread.isAlive())) { // 如线程不处于“新建状态”                 thread new Thread(this); // 实例化Thread对象             }             thread.start(); // 启动线程             stop false; // 开始接受信息         }         if (e.getSource() stopBtn) { // 单击按钮stop触发的事件             inceBtn.setBackground(Color.yellow); // 设置按钮颜色             stopBtn.setBackground(Color.red);             stop true; // 停止接受信息         }     }       public static void main(String[] args) {         Receive rec new Receive();         rec.setSize(460, 200);     } }
http://www.yutouwan.com/news/291820/

相关文章:

  • 专业网站设计立找亿企邦企业设计网站公司排名
  • 哪里找专业做网站的人常熟采集伪原创wordpress
  • 网站推广介绍网站建设代码实例
  • 网站重做网站建设域名注册
  • 网站建设夬金手指排名壹陆wordpress视差插件
  • 玩具网站开发背景网站项目接单
  • 建设注册管理中心网站首页网络营销有哪些内容
  • 文章收录网站黑马培训
  • 渭南建网站湖南新能源公司中企动力网站建设
  • iis6cgi php网站缓存旅游网站设计方案
  • 苏中建设集团网站网址女装关键词排名
  • 2018春节放假安排 网站建设如何做网站的统计
  • 网站建设ssc源码平台怎么做购物微信网站
  • 西安网站建设比较好的公司weex做网站
  • 上海官方网站建设企业网站建设与管理试题
  • 网站建设技术哪些内容做网络写手 哪个网站比较好
  • 做一个小型网站多少钱dz如何做门户网站
  • 5173游戏交易网站源码网络运营需要学什么专业
  • 乐山网站营销推广哪家公司好上海火迎网络推广运营优化
  • 反馈网站制作旅游网站建设的重要性
  • 电商网站建设代理商网站名称填写什么
  • 陕西建设厅人才网站ps网站设计与制作
  • 虚拟机怎么做网站建站公司前景
  • 上海市建设工程 安全协会网站花西子网络营销策划方案
  • 做手机网站公司怎么建设网站
  • 网上服装商城网站建设方案自己网站的登录api怎么做
  • 做qq群头像网站wordpress描述怎么改
  • asp网站防攻击音乐展示网站建设平台
  • html网站代码服装网站建设效果
  • 网站上怎么做游戏wordpress修改底部版权