socket 长连接 IM

天呀鲁哇 发布于 2015/04/10 15:13
阅读 490
收藏 0

服务端:

public class ServiceDom {


    public static void main(String [] ags){
        try {
            ServerSocket server = new ServerSocket(8082);
            Socket socket = server.accept();
            //获得服务端套接字的输入输出流
            Reader reader = new InputStreamReader(socket.getInputStream());  
              char chars[] = new char[64];  
              int len;  
              StringBuilder sb = new StringBuilder();  
              while ((len=reader.read(chars)) != -1) {  
                 sb.append(new String(chars, 0, len));  
              }  
              System.out.println("from client: " + sb);  
              Writer writer = new OutputStreamWriter(socket.getOutputStream());
              writer.write(sb.toString());
              writer.flush();
              reader.close();   
        } catch (IOException e) {
            e.printStackTrace();
        }
        

    }


客户端:

package com.zwms;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class client {

    public void go() throws UnknownHostException, IOException{
        
        //向服务器端发送请求,服务器IP地址和服务器监听的端口号
        Socket client = new Socket("127.0.0.1", 8082);
        
                  //通过printWriter 来向服务器发送消息
        PrintWriter printWriter = new PrintWriter(client.getOutputStream());
        System.out.println("连接已建立...");
                  
                  //发送消息
        printWriter.println("hello Server}");
        
        printWriter.flush();
        
        //InputStreamReader是低层和高层串流之间的桥梁
        //client.getInputStream()从Socket取得输入串流
        InputStreamReader streamReader = new InputStreamReader(client.getInputStream());
        
        //链接数据串流,建立BufferedReader来读取,将BufferReader链接到InputStreamReder
        BufferedReader reader = new BufferedReader(streamReader);
        String advice =reader.readLine();
        
        
        System.out.println("接收到服务器的消息 :"+advice);
        reader.close();
    }
    
    public static void main(String[] args) throws UnknownHostException, IOException {
        client c = new client();
        c.go();
    }
}

为什么我总是接受不到服务器发来的消息?请赐教(想做一个小的IM)

加载中
返回顶部
顶部