`
zhangbaoming815
  • 浏览: 150409 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

InetSocketAddress的使用

    博客分类:
  • java
阅读更多

使用NIO的InetSocketAddress建立网络通信非常方便,包括服务端和客户端:

服务端创建一个ServerSocketChannel,等待客户端发起链接请求,下面的例子比较简单,开启服务端等待客户端请求,接收到客户端的连接后,给客户端发送数据。

 

Server段代码:

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;

public class Server2
{
    public static void main(String[] args) throws IOException
    {
        InetSocketAddress socketAddress = new InetSocketAddress("localhost", 5555);
        
        ServerSocketChannel server = ServerSocketChannel.open();
        
        server.socket().bind(socketAddress);
        
        SocketChannel channel = null;
        
        while((channel = server.accept()) != null)
        {
            OutputStream out = channel.socket().getOutputStream();
            
            while(true)
            {
                out.write("hello world !!".getBytes());
                
                out.flush();
            }
        }
    }
}

 

client段代码:

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;

public class Client2
{
    public static void main(String[] args) throws IOException, InterruptedException
    {
        InetSocketAddress socketAddress = new InetSocketAddress("localhost", 5555);
        SocketChannel channel = SocketChannel.open(socketAddress);
        channel.configureBlocking(false);
        
        ByteBuffer buffer = ByteBuffer.allocate(20);
        
        while(true)
        {
            int n = channel.read(buffer);
            
            System.out.println(n);
            
            System.out.println("receive data : " + new String(buffer.array(), 0, n));
            
            Thread.sleep(1000);
            
            buffer.flip();
        }
    }
}

 

分享到:
评论

相关推荐

    java LAN使用代理服务器

    在Java编程环境中,当需要通过局域网(LAN)进行网络通信时,有时会遇到需要使用代理服务器的情况。代理服务器可以提供多种功能,包括提高访问速度、缓存、过滤网络内容以及匿名上网等。本文将深入探讨如何在Java中...

    libgdx net的使用

    - 接着,使用`accept()`方法等待连接请求,并处理每个新连接。 - 当有客户端连接时,创建一个新的`SocketChannel`来处理该连接上的通信。 ```java NioServerSocketChannel server = NioServerSocketChannel.open...

    轻量级HTTP客户端API框架,让Java发送HTTP HTTPS请求不再难.rar

    输出完了要关闭连接啊。用exc.close(); 执行关闭连接。 HttpServer server = HttpServer.create(new InetSocketAddress(44444),10); ... InetSocketAddress addr = new InetSocketAddress(7778);

    JAVA中检查网络是否是通的

    InetSocketAddress address = new InetSocketAddress(ipAddress, port); socket.connect(address, 5000); // 5000毫秒超时 System.out.println("网络连接成功"); } catch (IOException e) { if (e.getMessage...

    Memcached java的使用实例

    本文将深入讲解如何在Java环境下集成和使用Memcached。 首先,我们需要在Java项目中引入Memcached的客户端库。常见的Java Memcached客户端有spymemcached和xmemcached,这里以spymemcached为例。可以通过Maven在`...

    WebService使用JDK发布

    HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0); server.createContext("/hello", new HelloWorldHandler()); server.start(); ``` 其中,`HelloWorldHandler`是一个实现了`HttpHandler`...

    java nio Selector的使用-客户端

    本篇文章将深入探讨如何在Java NIO中使用Selector处理客户端的I/O请求。 首先,我们需要理解Selector的工作原理。Selector是一个多路复用器,它可以监控多个通道的事件状态,如连接就绪、数据可读或可写等。通过...

    memcache 安装和使用

    import java.net.InetSocketAddress; public class MemCachedManager { private static final String SERVERS = "localhost:11211"; public static void main(String[] args) { try { MemcachedClient client ...

    Hadoop自己的Rpc框架使用Demo

    InetSocketAddress address = new InetSocketAddress("localhost", 9999); MyService proxy = RPC.getProxy(MyService.class, 0L, address, Configuration.getConfiguration()); MyRequest request = new ...

    Mina框架在android上的使用范例

    acceptor.bind(new InetSocketAddress(8080)); // 在MyHandler中处理事件 public class MyHandler extends IoHandlerAdapter { @Override public void messageReceived(IoSession session, Object message) { //...

    示例3.1 使用InetAddress

    InetSocketAddress serverAddress = new InetSocketAddress("127.0.0.1", 8080); Socket socket = new Socket(); socket.connect(serverAddress); ``` 总的来说,`InetAddress`是Java中处理IP地址和主机名的基础...

    通信TCP UDP 编程

    通信TCP UDP编程是网络编程中的基础,涉及到网络通信的核心协议和API使用。TCP(传输控制协议)和UDP(用户数据报协议)是互联网协议(IP)的两种主要传输层协议,它们提供了不同级别的可靠性和效率。 TCP是一种...

    java使用webserver发布服务端和客户端

    HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0); server.createContext("/add", new AddServiceHandler()); server.setExecutor(null); // creates a default executor server.start()...

    Mina2.0快速入门与源码剖析.docx

    * 套接字的使用和配置:InetSocketAddress、Socket * 连接器的实现:NioSocketAcceptor 四、Mina2.0 框架源码剖析(二) Mina2.0 框架源码剖析(二)主要包括了解 Mina2.0 的过滤器机制、编解码器的使用、异常处理...

    Java NIO教程文档

    InetSocketAddress remoteAddress = new InetSocketAddress("localhost", 9999); ByteBuffer buf = ByteBuffer.wrap("Hello".getBytes()); channel.send(buf, remoteAddress); ``` 3. **SocketChannel**:通过 ...

    网络编程学习心得与体会实践

    InetSocketAddress socketAddress1 = new InetSocketAddress("127.0.0.1", 8080); System.out.println(socketAddress1); InetSocketAddress socketAddress2 = new InetSocketAddress("localhost", 8090); ...

    Sun公司rtp的Java程序

    InetSocketAddress remoteAddress = new InetSocketAddress("192.168.1.2", 7001); rtpManager.addTarget(remoteAddress); DataSource dataSource = ... // 获取数据源,例如音频或视频捕获设备 SendStream ...

    缓存服务器memcached代码及使用文档

    MemcachedClient memcachedClient = new MemcachedClient(new InetSocketAddress("localhost", 11211)); // 存储数据 String key = "exampleKey"; String value = "exampleValue"; memcachedClient.set(key, ...

    普通java工程测试java使用memcached连接服务端

    首先,为了在Java工程中使用Memcached,我们需要引入一个Java客户端库。常见的有spymemcached和xmemcached,这里以spymemcached为例。在Maven项目中,可以在pom.xml文件中添加如下依赖: ```xml <groupId>...

    基于netty4 的udp字节数据接收服务

    在 Netty 中,我们可以使用 `NioDatagramChannel` 类来处理 UDP 通信。 创建 UDP 接收服务的关键步骤如下: 1. **初始化 Bootstrap**:首先,我们需要创建一个 `Bootstrap` 实例,这是 Netty 中启动服务器的基本...

Global site tag (gtag.js) - Google Analytics