当前位置:编程学习 > JAVA >>

java socket 多客户端和服务器的通信

[java] 
 
    所谓可以多客户端,就是需要在服务器端进行多线程编程,每一个客户端对应一个线程。如果要实现时时通讯和话,无论是客户端还是服务器端都要至少两个线程,主线程进行发送信息,子线程进行获取信息,这样可以保证时时通信.
下面贴出我的代码:

客户端:

[java] 
package com.lip; 
 
import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.OutputStreamWriter; 
import java.io.PrintWriter; 
import java.net.Socket; 
import java.util.Scanner; 
 
public class Client 
    { 
 
        /**
         * Author: Lip 
         * 客户端
         */ 
        public static void main(String[] args) 
            { 
                Socket socket = null; 
                BufferedReader br = null; 
                PrintWriter pw = null; 
                Scanner scanner = new Scanner(System.in);// 从键盘读取 
                try 
                    { 
                        // 创建客户端socket 
                        socket = new Socket(Server.HOST, Server.PORT); 
                        // 读取从客户端发来的消息 
                        br = new BufferedReader(new InputStreamReader( 
                                socket.getInputStream())); 
                        // 写入信息到服务器端 
                        pw = new PrintWriter( 
                                new BufferedWriter(new OutputStreamWriter( 
                                        socket.getOutputStream()))); 
                        new ReadServerMessage(br);// 从服务器读取消息 
                        while (true) 
                            { 
                                String temp = scanner.nextLine();// 从键盘读取一行 
                                pw.println(temp);// 写到服务器 
                                pw.flush(); 
                                if (temp.equals("q")) 
                                    break; 
                            } 
                    } 
                catch (Exception e) 
                    { 
                        e.printStackTrace(); 
                    } 
                finally 
                    { 
                        try 
                            { 
                                System.out.println("close......"); 
                                br.close(); 
                                pw.close(); 
                                socket.close(); 
                           

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,