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

    基础知识:

      IP协议又称互联网协议是互联网间互联的数据报协议,它提供网间连接的完善功能,包括IP数据报规定互联网络范围内的地址格式

      TCP协议即传输控制协议,规定一种可靠的数据信息传递服务

      IP地址是用于唯一标识网络中的一个通信实体,比如一台电脑,一台打印机,或者是路由器的某一个端口,而在基于IP协议网络中传输的数据包,都必须使用IP地址来进行标识

      端口是一个16位整数,用于表示数据交给哪个通信程序进行处理0-65535

    JAVA基本网络支持

      1.使用InetAddress类来代表IP地址

      2.使用URLDecoder和URLEndcoder用于完成普通字符串和MIME字符串之间的相互转换

      3.只用URL和URLConnection

        一旦获得了Url对象之后,就可以调用一些方法来访问该url对应的资源、

        创建一个和URL的连接,并发送请求,读取此URL引用的资源需要如下几个步骤:

      1.用url.openConnection()可以获得对应的urlconnection

      2.设置urlconnection的参数和普通请求属性

      3.如果只是发送get方式请求,则使用connect()方法建立和远程资源之间的实际连接既可,如果需要发送post方式的请求,则需要获取urlconnection实例对应的输出流来发送请求参数。

      4.远程资源变为可用程序可以访问远程资源的头字段,或通过输入流读取远程资源的数据

      在建立和远程资源的实际连接之前,程序可以通过一些方法来设置请求头字段

    发送get请求时,只需要将请求参数放到url字符之后,以?隔开,程序直接调用urlconnection对象的connect()方法即可,如果程序要发送post请求,则需要先设置doin和doout两个请求头字段的值,再用Urlconnection对应的输出流来发送请求参数

    基于TCP协议的网络编程

      IP协议只保证计算机能够发送和接收分组数据,IP协议负责将消息从一个主机传送到另一个主机,消息在传送过程中被分割成一个个小包

      TCP负责收集这些数据包,保证其正确连接,并且处理丢失等错误情况

       使用ServerSocket创建TCP服务器端,用accept方法来监听来自客户端连接请求

      客户端使用Socket来连接到指定的服务器

      在服务器和客户端都会产生一个socket,socket提供了两个方法来获取输入流和输出流,getinputstream getoutputstream,还可以设置超时时长

      当我们使用传统的bufferreader的readline方法读取数据时,在方法成功返回之前,线程被堵塞,程序无法继续执行,考虑到这个原因,服务器端应该为每一个socket单独启动一个线程,每一个线程都负责与客户端通信,从而引入多线程

      记录用户信息     可以让客户端在发送不同信息之前,先对这些信息进行恰当处理,比如加一些特殊字符,我们成为协议字符,可以用一个接口专门定义协议字符,然后为了解决不同用户和他所发送的信息间的关联,我们可以用一个MAP来保存这样子的键值

    半关闭的SOCKET

      可以用socket提供的shutdowninput和shutdownoutput方法来进行关闭socket的输入流/输出流,使得socket在发送完信息,关闭输出流,来表示数据结束以后还能够接受数据

    使用NIO实现非堵塞的socket通信

    (待续)

      

  • 相关阅读:
    Canvas
    FastDFS 下载与安装
    Oracle 表空间错误集锦
    Sql Server 网络配置
    telnet 功能启用并测试端口是否正常
    UIBarButtonItem 上按钮切换/隐藏的简单例子 转载
    UIScrollView详解
    warning:performSelector may cause a leak because its selector is unknown
    dispatch_once优化代码性能 转
    UIView 和 CALayer的那点事
  • 原文地址:https://www.cnblogs.com/lingxianxia/p/4337652.html
Copyright © 2011-2022 走看看