`
mickey_hou
  • 浏览: 237493 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java socket聊天客户端

阅读更多
public class Clien
{
   
    private static Socket socket;
   
    public static void main(String[] args)
    {
        try
        {
            connect();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
   
    private static void connect() throws IOException {
        InetAddress addr = InetAddress.getByName("127.0.0.1");         
        socket = new Socket(addr, 9999);         
        System.out.println("客户端发出socket=" + socket);        
        CGetMessage gm = new CGetMessage(socket);       
        CSendMessage sm = new CSendMessage(socket);     
        Thread gt = new Thread(gm);       
        Thread st = new Thread(sm);               
        gt.start();       
        st.start();
    }
}

public class CGetMessage implements Runnable
{
   
    BufferedReader bufferedReader;  // 读取信息流
   
    public CGetMessage(Socket socket)
    {
        // TODO Auto-generated constructor stub
        try {
            this.bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    @Override
    public void run()
    {
        // TODO Auto-generated method stub
        String value = "";
        try
        {
            while (true)
            {
                value = this.bufferedReader.readLine();
                if (null != value && !value.trim().equals(""))
                {
                    System.out.println("服务器说:" + value.trim());
                }
            }
        }
        catch (IOException e)
        {
            // TODO: handle exception
            e.printStackTrace();
        }
    }
   
}


public class CSendMessage implements Runnable
{
   
    PrintWriter printWriter;    
    BufferedReader bufferedReader;
   
    public CSendMessage(Socket socket) throws IOException
    {
        // TODO Auto-generated constructor stub
        this.printWriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);        
        this.bufferedReader = new BufferedReader(new InputStreamReader(System.in));
    }

    @Override
    public void run()
    {
        // TODO Auto-generated method stub
        String input = "";
        try
        {
            while (true)
            {
                input = this.bufferedReader.readLine();
                if (null != input && !input.trim().equals(""))
                {
                    this.printWriter.println(input.trim());
                }
                System.out.print("客户端说:" + input.trim());
            }
        }
        catch (IOException e)
        {
            // TODO: handle exception
            e.printStackTrace();
        }
        finally
        {
            this.printWriter.flush();
        }
    }
   
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics