zoukankan      html  css  js  c++  java
  • 网络编程

    1 。Java的网络编程包括了两种通信协议:

    TCP(Transmission Control Protocal)  传输控制协议

    UDP(User Datagram Prptocol) 用数据包协议

    static InetAddress getLocalHost()   返回本地主机   

    static InetAddress getByName(String host)   在给定主机名的情况下确定主机的 IP 地址  查找局部网内部存在的一个IP地址,如果没有找到抛出异常

    简单的说:一个电脑上的应用程序都绑定了一个对应的编号(端口),通过IP可以定位到指定的主机(电脑),再加上端口就可以定位到指定的程序了。

    1. 同一台机器上不能有两个程序使用同一个端口,会冲突BindExeception
    2. URL(Uniform Resource Locator)统一资源定位符,可以直接使用此类找到互联网上的资源如一个简单的网页。

      一般由:协议名,资源所在主机(域名),端口,资源名等部分组成;

      1. URL(String protocol, String host, int port, String file)
      2. TCP协议

        1. 什么是TCP协议
          1. 概念:略 传输层的协议  传输控制协议  Socket编程
          2. 重点是此协议中有两个类Socket ServerSocket 其中有一些方法,能够实现在两个不同的终端之间传输数据(客户端-服务端-客服端)
              1. TCP的特点
                  1. Java中使用Socket实现TCP程序开发,使用此类可以方便的建立可靠的,双向的,持续的,点对点的通讯连接。
                  2. Socket程序开发中,服务器端使用ServerScoket等待客户端的连接,在Java的网络程序中,每一个客户端都使用Socket对象表示。

                  package com.cj.TCP协议package com.cj.TCP协议;

                  import java.io.BufferedReader;
                  import java.io.BufferedWriter;
                  import java.io.IOException;
                  import java.io.InputStream;
                  import java.io.InputStreamReader;
                  import java.io.OutputStream;
                  import java.io.OutputStreamWriter;
                  import java.net.ServerSocket;
                  import java.net.Socket;

                  public class Server {
                      public static void main(String[] args) throws IOException {
                          //创建服务器站点
                          ServerSocket ss = new ServerSocket(2020);
                          //获取到客户端发送的数据
                          Socket server = ss.accept();
                          //获取服务器端的输入流
                          InputStream is = server.getInputStream();
                          //获取输入流中的数据
                          byte[] b = new byte[is.available()];
                          is.read(b);
                          String ssss = new String(b);
                          System.out.println(server.getInetAddress().getHostName()+":"+ssss);
                          server.shutdownInput();

                          //回应数据
                          //获取要回应的数据
                          String data = "我没睡觉,我在干活";
                          //获取服务器输出流
                                  OutputStream os= server.getOutputStream();
                          //将数据写入流中
                          os.write(data.getBytes());
                          System.out.println("我说:"+data);
                          //bos.close();
                      }
                  };

                  import java.io.IOException;
                  import java.io.InputStream;
                  import java.io.OutputStream;
                  import java.net.InetAddress;
                  import java.net.Socket;
                  import java.net.UnknownHostException;
                  import java.util.Arrays;

                  public class Client {
                      public static void main(String[] args) throws UnknownHostException, IOException {
                          //创建站点
                          Socket soc = new Socket(InetAddress.getLocalHost(), 2020);
                          //获取要传输的数据
                          String data = "你睡觉了吗?";
                          //获取客户端输出流
                          OutputStream os= soc.getOutputStream();
                          //将数据写入流中
                          os.write(data.getBytes());
                          System.out.println("我说:"+data);
                          soc.shutdownOutput();
                          //得到的反馈结果
                          //获取客户端输入流
                          InputStream is = soc.getInputStream();
                          byte[] b = new byte[is.available()];
                          is.read(b);
                          System.out.println(Arrays.toString(b));
                          String ssss = new String(b);
                          System.out.println("说:"+ssss);
                      }
                  }

  • 相关阅读:
    20100320 ~ 20100420 小结与本月计划
    datamining的思考
    谈谈网络蜘蛛 爬开心网001的一些体会
    将 ASP.NET MVC3 Razor 项目部署到虚拟主机中
    Eclipse代码中中文字显示很小的解决办法
    U8800一键ROOT删除定制软件 安装新版Docment to go
    Android(安卓) U8800 长按 搜索键、返回键 锁屏或解锁的设置方法
    JDK5.0新特性系列3.枚举类型
    JDK5.0新特性系列1.自动装箱和拆箱
    网游运营基本概念及专业术语
  • 原文地址:https://www.cnblogs.com/wzscom/p/10291185.html
Copyright © 2011-2022 走看看