java实现socket从服务器连续获取消息的示例

服务器端我们用软件模拟,是一个很小巧的软件,下载软件NetAssist:http://xiazai.jb51.net/201403/tools/NetAssist(jb51.net).rar

第二步贴上我们客户端的代码


import java.io.DataInputStream;

import java.io.IOException;
import java.net.socket;

public class Client { 
    public static final String IP_ADDR = "192.168.3.65";//服务器地址  
    public static final int PORT = 8080;//服务器端口号   
    static String text = null;

 public static void main(String[] args) throws IOException {   
        System.out.println("客户端启动...");
        Socket socket = null; 
        socket = new Socket(IP_ADDR,PORT);   
        while (true) {   
            try { 
                //创建一个套接字并将其连接到指定主机上的指定端口号 
                //读取服务器端数据   
                DataInputStream input = new DataInputStream(socket.getInputStream());   

    byte[] buffer;
    buffer = new byte[input.available()];
    if(buffer.length != 0){
    System.out.println("length="+buffer.length);
    // 读取缓冲区
    input.read(buffer);
    // 转换字符串
    String three = new String(buffer);
    System.out.println("内容=" + three);
    }
            } catch (Exception e) { 
                System.out.println("客户端异常:" + e.getMessage());  
            }
        }   
    }
}

可以看到打印结果如下:
length表示消息的长度


客户端启动...
length=27
内容=http://www.jb51.net

好了,一个socket客户端我们就完成了,这个是可以一直接收服务器发过来的消息的。

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...