`

UDP/IP+BIO

阅读更多

java对UDP/IP方式的网络数据传输同样采用Socket机制,只是UDP/IP下Socket没有建立连接的要求,由于UDP/IP是无连接的,因此无法进行双向的通信,这也就要求如果要双方通信的话,必须两端都成为UDPserver。在java中可以基于DatagramSocket 和 DatagramPacket来实现UDP/IP+BIO方式的系统间通信,DatagramSocket负责监听端口及读写数据。DatagramPacket作为数据流对象进行传输。

package org.cui.udpip.bio;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
*
* @author clin
*
*/
public class UDPServerUser01 {

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
DatagramSocket socket = new DatagramSocket(7777);
DatagramPacket receivepack = new DatagramPacket(new byte[1024] , 1024) ;
socket.receive(receivepack) ;
System.out.println("你接受的内容是:"+new String(receivepack.getData(),0,receivepack.getLength()) ) ;
String str = "my name clin ." ;
DatagramPacket sendpack = new DatagramPacket(str.getBytes() , str.length() ,InetAddress.getLocalHost() ,9000) ;
socket.send(sendpack) ;
System.out.println("你發送的內容是:"+str);

}
}



package org.cui.udpip.bio;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/**
*
* @author clin
*
*/
public class UDPServerUser02 {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
DatagramSocket socket = new DatagramSocket(8888) ;
String str = "hello my name is user01 what's your name" ;
System.out.println("你發送的信息:"+str);
DatagramPacket sendpack = new DatagramPacket(str.getBytes(), str.length(), InetAddress.getLocalHost(), 3000 ) ;
socket.send(sendpack) ;
DatagramPacket receivepack = new DatagramPacket(new byte[1024], 1024) ;
socket.receive(receivepack) ;
System.out.println("你接受的内容是:"+new String(receivepack.getData(),0,receivepack.getLength()) ) ;
}

}
分享到:
评论

相关推荐

    JAVA分布式开发

    1. **TCP/IP+BIO, TCP/IP+NIO, UDP/IP+BIO, UDP/IP+NIO**: - **TCP/IP**是传输控制协议/因特网协议,是互联网通信的基础,BIO(Blocking I/O)是同步阻塞I/O模型,适用于连接数量相对较少且连接稳定的情况。 - **...

    一站式学习Java网络编程 全面理解BIO:NIO:AIO1

    Socket 可以分为 TCP Socket 和 UDP Socket 两种,前者提供了可靠的连接,后者提供了不可靠的连接。 Unix 中的 Socket 是一种特殊的文件描述符,提供了进程间通信的基础。 通过 Socket,客户端可以与服务器之间...

    java 网络编程 java 网络编程

    9. **性能优化**:为了提高网络性能,可以使用NIO(Non-blocking I/O)或AIO(Asynchronous I/O),它们允许在一个线程中处理多个连接,相比传统的BIO(Blocking I/O)模型,能更好地利用系统资源。 通过深入学习和...

    mina-2.0.0-RC1.zip

    这个框架主要用于简化开发服务器端和客户端的网络应用程序,如TCP/IP和UDP/IP协议栈上的服务。MINA提供了事件驱动和异步I/O模型,使其能够处理大量并发连接,从而实现高效的网络通信。 MINA的核心设计原则是解耦...

    JAVA mina 框架源码

    它提供了丰富的网络通信API,使得开发者能够轻松地构建基于TCP/IP、UDP/IP以及其他协议的服务器和客户端应用程序。Mina框架的核心设计理念是解耦事件处理和业务逻辑,允许开发者专注于应用程序的业务部分,而将网络...

    JAVA网络通信系统的研究与开发(论文+源代码+开题报告).rar

    1. **TCP/IP协议**:理解TCP/IP模型及其各层的主要功能,如应用层的HTTP、FTP,传输层的TCP和UDP,网络层的IP等。 2. **Java Socket编程**:学习如何创建Socket连接,发送和接收数据,处理异常,以及关闭连接。 3....

    android实现mina通信,智能家居搞起来!

    Mina是一个开源的网络通信框架,广泛应用于TCP/IP和UDP/IP协议的编程,尤其适合处理大量并发连接的情况,如智能家居系统中的设备间通信。 Android作为全球最流行的移动操作系统,其应用程序开发主要使用Java或...

    NIO学习-Java源代码分享(含netty)

    Mina支持多种协议,如TCP/IP、UDP/IP、HTTP、FTP等。 在Java NIO的学习过程中,理解并熟练掌握Channel、Buffer、Selector的使用至关重要。通过阅读和分析源代码,可以深入理解这些组件如何协同工作,以及如何在实际...

    STM32F4x7_ETH_LwIP.rar

    LwIP提供了TCP、UDP、ICMP和DHCP等网络协议,使得STM32F4x7能够实现网络通信功能。在本项目中,LwIP被用来处理STM32F4x7与外部网络的TCP/IP通信,确保数据包的正确传输。 FreeRTOS是一个流行的开源实时操作系统,...

    mina网络通信实例

    MINA的核心是其事件驱动、非阻塞I/O模型,这种模型使得MINA在处理大量并发连接时表现优异,尤其适合于TCP/IP和UDP/IP等网络协议。 在了解MINA网络通信实例之前,我们先来深入理解MINA的核心概念。MINA采用了NIO...

    Apache MINA框架所用的jar包

    这个框架广泛应用于各种网络协议的实现,如TCP/IP、UDP/IP、HTTP、FTP等。 在提供的压缩包文件中,包含以下几个关键的jar包: 1. **mina-core-2.0.0.jar**:这是Apache MINA的核心库,包含了所有用于创建和管理...

    Java在高并发网络编程中的应用

    Mina提供了一个抽象的、事件驱动的API,用于网络通信,无论是面向连接的协议(如TCP/IP)还是无连接的协议(如UDP/IP)。Mina框架通过事件处理机制,将网络通信中可能发生的各种事件(例如连接打开、数据接收、异常...

    mina客户端服务器简易Demo

    Apache Mina(Minimum Asynchronous Network)是一个开源的网络通信框架,它为Java开发者提供了一种简单而高效的方式来构建高性能、高可用性的网络应用程序,如TCP/IP和UDP/IP协议的应用。在本示例中,我们将深入...

    构建高性能的大型分布式java应用

    - **TCP/IP vs UDP/IP**:TCP/IP提供了一种可靠的通信方式,它确保了数据的完整性和顺序性,适用于那些对数据准确性要求较高的场景;而UDP/IP则是一种无连接的协议,虽然不保证数据的可靠传输,但是它的效率更高,...

    java网络高级编程

    最后,网络性能优化是不可忽视的部分,如使用NIO(非阻塞I/O)替代传统的BIO(阻塞I/O),可以显著提升高并发场景下的性能。Java NIO通过Selector和Channel提供了一种高效的方式处理多个连接。 总的来说,Java网络...

    java面试笔试题大汇总 ~很全面 -

    6. **网络编程**:Java的Socket编程是网络通信的基础,包括TCP/IP连接、UDP协议、IO/NIO/BIO模型等。面试中可能涉及网络请求、数据传输、异常处理等问题。 7. **数据库操作**:Java与数据库交互通常通过JDBC实现,...

    网络和IO面试题.zip

    3. **BIO、NIO、AIO**:Java中的IO模型,BIO(Blocking IO)是传统的同步阻塞模型;NIO(Non-blocking IO)提供了选择器和通道,可以处理多个连接;AIO(Asynchronous IO)基于事件驱动,进一步优化了NIO。 4. **...

    分布式部分概念

    TCP/IP协议族是互联网的基础,它定义了如何在网络中传输数据包的标准。该协议族包括多个层次: - **应用层**:提供应用程序之间的接口,例如HTTP、FTP、SMTP等。 - **传输层**:主要负责数据的可靠传输,包括TCP和...

    华为Java面试题目

    - TCP/IP:理解TCP和UDP的区别,熟悉三次握手、四次挥手等TCP连接过程。 - HTTP/HTTPS:了解HTTP报文结构,理解HTTPS的安全性。 10. **代码质量与可维护性:** - SOLID原则:理解单一职责、开放封闭、里氏替换、...

Global site tag (gtag.js) - Google Analytics