精华内容
下载资源
问答
  • java网络通信

    千次阅读 2018-08-03 16:58:12
    java已经将网络程序所需要的东西封装成不同的类,只要创建这些类的对象,使用相应的方法,就可以实现网络通信。 服务器-----------网络-----------客户机。服务器是指提供信息的计算机或程序,客户机是指请求信息的...

    java已经将网络程序所需要的东西封装成不同的类,只要创建这些类的对象,使用相应的方法,就可以实现网络通信。

    服务器-----------网络-----------客户机。服务器是指提供信息的计算机或程序,客户机是指请求信息的计算机或程序,通常所说的“局域网”(local Area Network)LAN ,是一群通过一定形式连接起来的计算机,LAN延伸到更大的范围,这样的网络称为“广局网”(wide Area network)WAN ,人们熟悉的internet则是由无数的LAN和WAN组成。LAN是由特定类型的传输媒体(如电缆、光缆和无线媒体)和网络适配器(亦称为网卡)互连在一起的计算机,并受网络操作系统监控的网络系统。

    网络协议:规定了计算机之间的物理,机械(网线与网卡的连接规定),电气(有效的电平范围)等特征以及计算机之间的相互寻址规则,数据发送冲突的解决,长的数据如何分段传送与接收,

    1.IP协议:iternet protocol 的简称,由此可知它就是一种“网络协议”,internet网络采用的协议是TCP/IP协议。全称是Transmission control protocol / internet protocol,TCP:面向连接的传输层协议,IP:网路层协议。IP的工作是把原始数据(数据包)从一地传送到另一地;TCP的工作是管理这种流动并确保其数据是正确的。在internet网上存在数以亿计的主机,每一台主机在网络上通过为其分配的internet地址表示自己,这个地址就是IP地址,目前为止,IP地址用4个字节,也就是32位二级制数表示,称为IPv4.为了便于使用,通常取用每4个字节的十进制数并每个字节间用圆点隔开来表示(点分十进制)IP地址(网络号段+主机号段),如192.168.1.1.现在人们正在试验用16个字节来表示IP地址,这就是IPv6,但IPv6还没投入使用。Tcp/IP是一种层次结构,共分为4层(7层),分别为:应用层,传输层,互联网层,主机到网络层。

    私有地址就是在互联网上不使用,而被用在局域网中的地址,B类的除了写出的是私有地址外,169.254.x.x是保留地址。

    A类的可分配Ip的电脑数最大,目前中国可能只占3个。ipconfig是查IP地址的dos命令。ping 后面跟ip地址:测试本机与指定ip地址间的通讯是否有问题。特殊的ip地址:127.0.0.1 回环地址(表示本机)ping后也可以写这个。x.x.x.255 广播地址,x.x.x.0 网络地址。https://blog.csdn.net/chengonghao/article/details/51926274,这篇文章不错。InetAddress类,根据主机名或者IP地址的字符串表示得到IP地址对象,getHostName()方法获取主机名,getHostAddress获取ip地址。

    2.TCP与UDP协议:在TCP/IP协议栈(是指网络中各层协议的总和)中,

    应用层:我们手机中的软件,比如QQ。表示层:操作转换为二进制数据,加密解密在这里处理,会话层:对数据传输进行管理,会话层在两个互相通 信的应用进程之间,建立、组织和协调其交互(Interaction)。例如,确定是双工工作(每一方同时发送和接收), 还是半双工工作(每一方交替发送和接收)。当发生意外时(如已建立的连接突然断了),要确定在重新恢复会话时应从何处开始。传输层:数据传输的方式,网络层:这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。数据链路层:管理如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;如何控制帧物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理,换句话说就是从物理层接受的数据进行MAC地址(网卡的地址)的封装与解封装,这一层的工作设备是交换机。物理层:定义物理设备的标准,如网线的接口类型,各种传输介质的传输速率,主要作用是传输比特流,(就是由1,0转化为电流(无线是电磁波)强弱来进行传输,到达目的地后转化为1,0也就是通常说的数模转换和模数转换,这一层的数据叫做比特)。简单的说,物理层确保原始的数据可在各种物理媒体上传输。

    网络编程三要素:IP地址(区分电脑),端口(区分程序),协议(规则)

    TCP(传输控制协议 Transmission Control Protocol)和UDP(用户数据报协议 User Datagram protocol)应该了解。TCP需要三次握手建立连接,四次断开来断开连接,效率低,保证数据送出顺序与抵达顺序相同,保证数据正确性,因此TCP协议更适合可靠性要求比较高的场合,例如HTTP从某个URL读取数据时,如果收到的数据顺序与发送时的顺序不同,可能会出现一个混乱的HTML文件或一些无效的信息。UDP是无连接通信协议,打包有限制,每个包大约64k,速度快不保证可靠数据的传输,UDP协议会把数据打包,然后扔给目标地址,但是这个包能不能扔的到目标机器上,就不管了,udp就只管扔。所以这种通信协议的优缺点很明显了,优点就是:速度快,效率高;缺点就是:安全性低,容易丢包。

    长连接与短链接:

    长连接意味着进行一次数据传输后,不关闭连接,长期保持联通状态,如果两个应用程序之间有心的数据需要传输,则直接服用这个连接,无需创建新的连接。它的优势在于多次通信中可以省去建立和关闭连接的开销,多次传输数据的总耗时更少,缺点是需要花费额外的经理保持这个连接一直是可用的,所以我们一般会通过下面这几种方式来做“保活”工作,确保连接在被使用的时候是可用状态:

    1.利用 TCP 自身的保活(Keepalive)机制来实现,保活机制会定时发送探测报文来识别对方是否可达。一般的默认定时间隔是 2 小时,你可以根据自己的需要在操作系统层面去调整这个间隔,不管是 linux 还是 windows 系统。

    2.上层应用主动的定时发送一个小数据包作为“心跳”,探测是否能成功送达到另外一端。 保活功能大多数情况下用于服务端探测客户端的场景,一旦识别客户端不可达,则断开连接,缓解服务端压力。

    提前多说一句,如果在做了高可用的分布式系统场景中运用长连接会更麻烦一些。因为高可用必然包含自动故障转移、故障隔离等机制。这恰恰导致了一旦发生故障,客户端需要及时发现哪些连接已处于不可用状态,并进行相应的重连,包括重新做负载均衡等工作。

    了解完了长连接,那么短连接就很容易理解了。短连接意味着每一次的数据传输都需要建立一个新的连接,用完再马上关闭它。下次再用的时候重新建立一个新的连接,如此反复。

    它的优势是由于每次使用的连接都是新建的,所以基本上只要能够建立连接,数据就大概率能送达到对方。并且哪怕这次传输出现异常也不用担心影响后续新的数据传输,因为届时又是一个新的连接。缺点是每个连接都需要经过三次握手和四次握手的过程,耗时大大增加。

    另外,短连接还有一个致命的缺点。我们回到前面提到的维基百科对 socket 的定义,其中说到 socket 包含通信协议、目标地址、状态等。实际当你在基于 socket 进行开发的时候,这些包含的具体资源主要就是这 5 个:源 IP、源端口、目的 IP、目的端口、协议,有个专业的叫法称之为“五元组”。在一台计算机上只要这五元组的值不重复,那么连接就可以被建立。然而一台计算机最多只能开启 65535 个端口,如果现在两个进程之间需要通信,作为服务端的 IP 和端口必然是固定的,因此单个客户端理论上最多只能与服务端同时建立 65535 个 socket 连接。如果除去操作系统和其它进程所占用的端口,实际还会更少。所以,一旦使用不当,在很短的时间内建立了大量连接,端口很容易被占用完。这不但会导致自身无法正常工作,还会影响到同一台计算机上的其它进程。

    端口和套接字:一般而言,一台计算机只有单一的连接到网络的“物理连接(physical connection)”所有的数据都通过此连接对内,外送达特定计算机,这就是物理端口(网卡口)。而我们指的是逻辑端口,每个网络程序都会至少有一个逻辑端口,用于标识进程的逻辑地址,不同进程的标识,网络程序设计中的端口(prot)并非真实的物理存在,而是一个假象的连接装置,端口被规定为一个在0-65535之间的整数,HTTP服务一般使用80端口,FTP一般使用21端口,假如一台计算机提供了HTTP,FTP等多种服务,那么客机通过不同的端口来确定连接到服务器的哪项服务上,通常0-1023之间的端口数用于一些知名的网络服务和应用,用户的普通网络应用程序应该使用1024以上的端口数,以避免端口号与另一个应用或系统服务所用端口冲突(通过360可以查看端口号:更多--流量防火墙--网络连接)。网络中的套接字(socket)用于将应用程序与端口连接起来,套接字是一个假象的连接装置,就像插座,连接电线与电器,java将套接字抽象化为Socket类,socket之间通过IO传输。换句话说Socket用于描述ip地址和端口,是一个通信链的Handle。在Internet上的主机一般运行了多个服务软件,同时提供几种服务,每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket就是为了网络编程提供的一种机制,通信的两端都有socket,网络通信其实就是socket间的通信,数据在两个socket之间通过 IO 传输。

    ava,net包中的InetAddress类是与IP地址相关的类,利用该类可以获取IP地址,主机地址等信息。此类会抛出UnknowHostException异常,这个异常在主机不存在或网络连接错误时发生。

    TCP连接过程

    如下图所示,可以看到建立一个TCP连接的过程为(三次握手的过程):

    第一次握手

    客户端向服务端发送连接请求报文段。该报文段中包含自身的数据通讯初始序号。请求发送后,客户端便进入 SYN-SENT 状态。

    第二次握手

    服务端收到连接请求报文段后,如果同意连接,则会发送一个应答,该应答中也会包含自身的数据通讯初始序号,发送完成后便进入 SYN-RECEIVED 状态。

    第三次握手

    当客户端收到连接同意的应答后,还要向服务端发送一个确认报文。客户端发完这个报文段后便进入 ESTABLISHED 状态,服务端收到这个应答后也进入 ESTABLISHED 状态,此时连接建立成功。

    这里可能大家会有个疑惑:为什么 TCP 建立连接需要三次握手,而不是两次?这是因为这是为了防止出现失效的连接请求报文段被服务端接收的情况,从而产生错误。

    TCP断开过程:

    TCP 是全双工的,在断开连接时两端都需要发送 FIN 和 ACK。

    第一次握手

    若客户端 A 认为数据发送完成,则它需要向服务端 B 发送连接释放请求。

    第二次握手

    B 收到连接释放请求后,会告诉应用层要释放 TCP 链接。然后会发送 ACK 包,并进入 CLOSE_WAIT 状态,此时表明 A 到 B 的连接已经释放,不再接收 A 发的数据了。但是因为 TCP 连接是双向的,所以 B 仍旧可以发送数据给 A。

    第三次握手

    B 如果此时还有没发完的数据会继续发送,完毕后会向 A 发送连接释放请求,然后 B 便进入 LAST-ACK 状态。

    第四次握手

    A 收到释放请求后,向 B 发送确认应答,此时 A 进入 TIME-WAIT 状态。该状态会持续 2MSL(MSL为报文最大段生存期,指报文段在网络中生存的时间,超时会被抛弃) 时间,若该时间段内没有 B 的重发请求的话,就进入 CLOSED 状态。当 B 收到确认应答后,也便进入 CLOSED 状态。

    TCP设计基础:1.服务器程序创建一个serverSocket(服务器端套接字),调用accept()方法等待客户机来连接。2.客户端程序创建一个socket,请求与服务器建立连接。3.服务器接收客户机的连接请求,同时创建一个新的socket与客户建立连接,服务器继续等待新的请求。

    serverSocket类:java。net包中的serverSocket类用于表示服务器套接字,其主要功能是等待来自网络的“请求”,它可以通过指定的端口来等待连接的套接字,服务器套接字一次可以与一个套接字连接,如果多台客户机同时请求,服务器套接字会将请求连接的客户机存在队列中,然后依次连接,若请求数大于最大容量,则多出的请求被拒绝,队列大小默认50,下面backlog即为队列容量。

    调用serverSocket类的accept()方法,如果有客户端连接,创建一个套接字socket,服务端和客户端都通过getoutputStream()获得输出流对象,getinputStream()方法获取输入流对象,

    在结束运行时要关闭socket和reader。当一台机器上安装了多个网络应用程序,很可能指定的端口号已被占用,此时运行netstat - help来获得帮助,使用netstat -an来查看该程序所使用的端口,

    //客户端 : new Socket 时创建流套接字并将其链接到指定的IP地址的指定端口

    //服务端
        

    UDP(用户数据报协议)

    使用UDP时,用户无法知道数据能否正确的到达主机,也不能确定到达目的地顺序,但速度较快,模式:将数据打包,然后将数据包发往目的地。接收别人发来的包,然后查看数据包。

    DatagramPacket类:java。net包内, 表示数据包,构造函数,DatagramPacket(byte[] buf, int lenght, InetAddress address, int port)制定了数据包的内存空间和大小,还有目标地址和端口。

    DatagramSocket类:java。net包内,表示发送和接收数据包的套接字,构造函数:DatagramSocket(int port, inetAddress)创建数据抱套接字将其绑定到指定的本地地址和端口(适用于多块网卡和多个IP情况),如果没有参数那就是将套接字绑定到本地主机任何可用的端口。、

            // Sever端  如果多次启用接收端会报出bindexception端口被占用错误,如果第一次运行就报错说明已经有程序占这个端口。
           

     

    展开全文
  • Java网络通信

    2020-06-15 10:23:09
    19 网络通信 目标: 了解网络程序设计基础 学会编写TCP程序 学会编写UDP程序 19.1 网络程序设计基础 19.1.1 局域网与因特网 要实现两台计算机的通信,必须用同一个网络线路连接两台计算机。 服务器:提供信息的...

    1 网络通信

    目标:

    • 了解网络程序设计基础
    • 学会编写TCP程序
    • 学会编写UDP程序

    1.1 网络程序设计基础

    1.1.1 局域网与因特网

    要实现两台计算机的通信,必须用同一个网络线路连接两台计算机。
    服务器、客户机和网络
    服务器:提供信息的计算机或程序;
    客户机:请求信息的计算机或程序;
    网络:连接服务器与客户机,实现两者相互通信。

    1.1.2 网络协议

    1. IP协议
      Internet网络采用的协议是TCP/IP协议。
      TCP/IP模式是一种层次结构,共分为4层,分别为应用层、传输层、互联网层和网络层。各层实现特定的功能,提供特定的服务和访问接口,并具有相对独立性。
    2. TCP与UDP协议
      TCP:面向连接;可靠传输;基于字节流;保证顺序;两台计算机间。
      UDP:面向无连接;不可靠传输;基于报文;不保证顺序;若干目标。
      注意:一些防火墙和路由器会设置成不允许UDP数据包传输,因此,若遇到UDP连接方面的问题,应先确定所在网络是否允许UDP协议。

    1.1.3 端口和套接字

    一台计算机只有单一的连到网络的物理连接,所有的数据都通过此连接对内、对外送达特定的计算机,这就是端口。(并非真实的物理存在,而是假想的连接装置)
    套接字:用于将应用程序与端口连接起来。

    1.2 TCP程序设计基础

    TCP网络程序设计是指利用Socket类编写通信程序。服务器程序和客户机程序。
    在这里插入图片描述

    1.2.1 InetAddress类

    利用该类可以获取IP地址、主机地址等信息。常用方法如下:
    在这里插入图片描述
    例:利用InetAddress类的getHostName()和getHostAddress()方法获得本地主机的本地明、本机IP地址。
    在这里插入图片描述
    注:InetAddress类的方法会抛出UnknownHostException异常,所以必须进行异常处理。这个异常在主机不存在或网络连接错误时发生。

    1.2.2 ServerSocket类

    该类用于表示服务器套接字,主要功能是等待来自网络上的“请求”。它可通过指定的端口来等待连接的套接字。服务器套接字一次可以与一个套接字连接。如果多台客户机同时提出连接请求,服务器套接字会将请求连接的客户机存入队列中,然后从中取出一个套接字,与服务器新建的套接字连接起来。若请求连接数大于最大容纳数,多出来的连接请求被拒绝。队列的默认大小是50。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1.2.3 TCP网络程序

    单向通信:只要求客户端向服务器发送消息。
    客户机套接字和服务器套接字连接成功后,客户机通过输出流发送数据,服务器则通过输入流接收数据。
    例:一个TCP服务器端程序,在getserver()方法中建立服务器套接字,调用getClientMessage()方法获取客户端信息。
    在这里插入图片描述

    在这里插入图片描述
    例:客户端程序,实现将用户在文本框中输入的信息发送至服务器端,并将文本框中输入的信息显示在客户端的文本域中。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    注:上面的命令在命令行执行。

    1.3 UDP程序设计基础

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1.3.1 DatagramPacket类

    在这里插入图片描述

    1.3.2 DatagramSocket类

    在这里插入图片描述

    1.3.3 UDP网络程序

    例:主机不断重复播出节目预报,可以保证加入到同一组的主机随时可接收到广播消息。接收者将正在接收的信息放在一个文本域中,并将接收的全部信息放在另一个文本域中。
    (1) 广播主机程序不断地向外播出信息。
    在这里插入图片描述
    在这里插入图片描述
    (2) 接收广播程序:“开始接收”,“停止接收”。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • Java 网络通信

    2012-05-25 20:17:34
    ---------------------- android...Java网络通信 网络应用中基本上都是TCP(TransmissionControl Protocol传输控制协议)和UDP(UserDatagram Protocol用户数据报协议),TCP是面向连接的通信协议,UDP是无连接的通信协议.
    ---------------------- android培训java培训、期待与您交流! ----------------------
    

     

    Java网络通信

    网络应用中基本上都是TCP(TransmissionControl Protocol传输控制协议)UDP(UserDatagram Protocol用户数据报协议),TCP是面向连接的通信协议,UDP是无连接的通信协议.

    一.网络通讯要素:

    IP地址:InetAddress

    网络中设备的标识

    不易记忆,可用主机名

    本地回环地址:127.0.0.1  主机名:localhost

    端口号

    用于标识进程的逻辑地址,不同进程的标识

    有效端口:0~65535,其中0~1024系统使用或保留端口。

    传输协议

    通讯的规则

    常见协议:TCPUDP

     

    Java分别为TCPUDP提供了相应的类,TCPjava.net.ServerSocket(用于服务器)java.net.Socket(用于客户端);UDPjava.net.DatagramSocket.

     

    二.TCPUDP的区别:

         UDP

    将数据及源和目的封装成数据包中,不需要建立连接

    每个数据报的大小在限制在64k

    因无连接,是不可靠协议

    不需要建立连接,速度快

    TCP

    建立连接,形成传输数据的通道。

    在连接中进行大数据量传输

    通过三次握手完成连接,是可靠协议

    必须建立连接,效率会稍低

    UDP传输:

    1.      创建UDPsocket服务对象 DatagramSocket,建立发送端,接收端。

    2.      创建UDP的数据包对象 DatagramPacket,将要传输的数据封装到数据包中。

    3.      调用Socket的发送接收方法。

    4.      关闭Socket

     

    发送端与接收端是两个独立的运行程序。

     

    ,DatagramSocket

      DatagramSocket有如下构造方法:

      1,DatagramSocket():构造数据报套接字并将其绑定到本地主机上任何可用的端口。

      2,DatagramSocket(intport):创建数据报套接字并将其绑定到本地主机上的指定端口。

      3,DatagramSocket(intport, InetAddress laddr):创建数据报套接字,将其绑定到指定的本地地址。即指定网卡发送和接收数据.

      如果在创建DatagramSocket对象时,没有指定网卡的IP 地址,在发送数据时,底层驱动程序会自动选择一块网卡去发送,在接收数据时,会接收所有的网卡收到的与端口一致的数据.

      发送信息时,可以不指定端口号,接收信息时,要指定端口号,因为要接收指定的数据.

      发送数据使用DatagramSocket.send(DatagramPacketp)方法,接收数据使用DatagramSocket.receive(DatagramPacket p)方法.

     

    ,DatagramPacket

      DatagramPacket类有如下构造方法:

      1,DatagramPacket(byte[]buf, int length):构造 DatagramPacket,用来接收长度为length的数据包。

      2,DatagramPacket(byte[]buf, int length, InetAddress address, int port):构造数据报包,用来将长度为length的包发送到指定主机上的指定端口号。

      接收数据时使用第一种构造方法,发送数据时使用第二种构造方法.

      1.3,InetAddress

      Java中对IP地址进行包装的类,

      DatagramPacket.getAddress()可以获取发送或接收方的IP地址.DatagramPacket.getPort()可以获取发送或接收方的端口.

     

        发送端 示例:

      在发送端,要在数据包对象中明确目的地IP及端口。

    DatagramSocket ds = new DatagramSocket();

    byte[] by = “hello,UDP”.getBytes();

    DatagramPacket dp = new DatagramPacket(by,0,by.length,

                              InetAddress.getByName(“127.0.0.1”),10000);

    ds.send(dp);

    ds.close();

    接收端:

    在接收端,要指定监听的端口。

    DatagramSocket ds = new DatagramSocket(10000);

    byte[] by = new byte[1024];

    DatagramPacket dp = new DatagramPacket(by,by.length);

    ds.receive(dp);

    String str = new String(dp.getData(),0,dp.getLength());

    System.out.println(str+"--"+dp.getAddress());

    ds.close();

     

    TCP传输:

    SocketServerSocket

    建立客户端和服务器端

    建立连接后,通过Socket中的IO流进行数据的传输

    关闭socket

    同样,客户端与服务器端是两个独立的应用程序。

    基本思路(客户端)

    创建客户端socket服务,客户端需要明确服务器的ip地址以及端口,这样才可以去试着建立连接,如果连接失败,会出现异常。

    连接成功,说明客户端与服务端建立了通道,那么通过IO流就可以进行数据的传输,而Socket对象已经提供了输入流和输出流对象,通过getInputStream(),getOutputStream()获取即可。

    与服务端通讯结束后,关闭Socket

     

    通过Socket建立对象并指定要连接的服务端主机以及端口。

    Socket s = newSocket(“192.168.1.1”,9999);

    OutputStream out= s.getOutputStream();

    out.write(“hello”.getBytes());

    s.close();

     

    基本思路(服务端)

    创建TCP服务端对象.并监听指定端口,明确哪个端口的数据是这个服务端可以处理的。使用java.net.ServerSocket类用以创建服务器Socket.

    当有客户端访问时,要明确是哪个客户端,可通过accept()获取已连接的客户端对象,并通过该对象与客户端通过IO流进行数据传输。

    当该客户端访问结束,关闭该客户端。

     

    建立服务端需要监听一个端口

    ServerSocket ss= new ServerSocket(9999);

    Socket s =ss.accept ();

    InputStream in =s.getInputStream();

    byte[] buf = newbyte[1024];

    int num =in.read(buf);

    String str = newString(buf,0,num);

    System.out.println(s.getInetAddress().toString()+”:”+str);

    s.close();

    ss.close();

     

    使用TCP通信时,要先运行服务器程序,然后才能运行客户端程序,TCP服务器程序运行到Socket.accpet()方法等待客户连接时,accept方法将阻塞,一直到有客户连接请求到来,该方法才会返回。

     

    ---------------------- android培训java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima
    展开全文
  • java网络通信TCP

    2014-10-20 17:11:32
    java网络通信,使用TCP协议,代码可直接导入运行。完整的UI界面方便大家学习
  • 毕业设计(论文)说明书 题 目 JAVA网络通信系统的研究与开发 毕业设计论文中文摘要 JAVA网络通信系统的研究与开发 摘 要网络通信在当今信息社会中起着不可或缺的作用 人们可以利用网络通信技术进行即时的信息交流例如...
  • Java网络通信编程

    2019-05-18 08:06:00
    Java网络通信编程 IP地址唯一的标识网络上的终端,端口号标识正在终端上运行的进程,直接或间接地通过网络协议与网络其它终端进行通讯; import java.net.InetAddress; import java.net....

    Java网络通信编程


         IP地址唯一的标识网络上的终端,端口号标识正在终端上运行的进程,直接或间接地通过网络协议与网络其它终端进行通讯;

    import java.net.InetAddress;
    import java.net.UnknownHostException;
    public class TestInetAddress {
        public static void main(String[] args) throws UnknownHostException {
            // 通过InetAddress类获得域名,主机因特网地址
            InetAddress ia = InetAddress.getLocalHost();
            System.out.println(ia);
            System.out.println(ia.getHostName());
            System.out.println(ia.getHostAddress());
            InetAddress ia1 = InetAddress.getByName("www.baidu.com");
            System.out.println(ia1);
            System.out.println(ia1.getHostName());
            System.out.println(ia1.getHostAddress());
        }
    }

     网络通信协议

    TCP可靠的安全的网络传输协议,UDP不可靠不安全的网络传输协议;

    Socket套接字

     

    转载于:https://www.cnblogs.com/Aha-Best/p/10884535.html

    展开全文
  • JAVA网络通信过程模拟演示 1.提出问题java语言在网络中应用广泛其中一个是有关通信方面的人们使用电脑上网的过程是客户---服务器的过程那java是怎样实现这个过程呢 2.解决方法java是使用套接字Socket和ServerSocket...
  • 今天小编就为大家分享一篇关于Java网络通信中ServerSocket的设计优化方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • JAVA网络通信之NIO

    2018-09-19 12:33:17
    转自:轻样知生 - JAVA网络通信之NIO - Tylili 本篇将展现JAVA网络通信中NIO的部分,和上一篇不同,本篇所用的Socket是通过SocketChannel的方式,这是NIO与传统IO最主要的区别。 一、基于缓冲的SocketChannel 和...
  • 下面小编就为大家带来一篇Java网络通信基础编程(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Java网络通信编程学习

    2016-02-23 17:50:11
    Java网络通信编程学习,Socket编程
  • 基于Socket的Java网络通信应用开发课程导学 北京信息职业技术学院 | 刘力维 本章主要学习内容 Java多线程编程介绍Java多线程原理和编程实现方法 Java多线程中的资源保护介绍Java多线程中的临界资源问题和线程互斥的...
  • JAVA网络通信之基础篇

    2018-09-19 12:33:27
    转自:轻样知生 - JAVA网络通信之基础篇 - Tylili 一、Socket套接字 作为JAVA网络通信的基础,Socket帮助进程实现进程间的建立连接并相互通信。而Socket又分为客户端和服务端,也就是Socket和SocketServer。在JAVA...
  • JAVA网络通信系统的研究与开发(论文+源代码+开题报告),网络通信系统网络通信系统网络通信系统
  • OOP21-Java网络通信

    2018-03-07 20:36:50
    Java网络通信Socket 简单的Socket通信 服务器端 文件server.java /** * receiver data(String ends with \n) from client only * * @author subo */ public class Server { int port; boolean isRunning;...
  • Java网络通信之UDP通信

    2020-05-31 14:02:48
    网络通信要素 UDP通信 网络编程 网络参考模型有两个:OSI参考模型和TCP/IP参考模型 网络通信要素 IP地址:InetAddress 网络中设备的标识 不易记忆,可用主机名 本地回环地址:127.0.0.1 主机名:...
  • 首先声明一下,刚开始学习Java网络通信编程就对他有一种畏惧感,因为自己对网络一窍不通,所以。。。呵呵。。你懂得,昨天又仔细的学习了一遍,感觉其实java网络编程也没想象的那么难,不信,咱一起看看。。。呵呵。...
  • 一、软件结构 B/S:Browser/Server 浏览器/服务器模式 C/S:Client/Server 客户端/服务器模式 二、网络通讯协议 网络通讯协议是一种规则 对数据的传输格式 传输速率 ...使网络程序进行通信 可采用TCP协议也可采用UDP...
  • Java网络通信基础入门

    千次阅读 2018-07-31 10:54:33
    到底网络通信都是什么玩法呢,这篇文章从头到脚帮你梳理一下。 一、网络基础知识 1、两台计算机间进行通讯的三个条件 IP地址、协议、端口号 2、TCP/IP协议 目前世界上应用最为广泛的协议,是以TCP和IP为基础的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,749
精华内容 5,099
关键字:

java网络通信

java 订阅