java_Socket通信_聊天程序

来源:互联网 发布:mac间断性声音很大 编辑:程序博客网 时间:2024/05/16 15:56
package myfistsocket;  
/*一个作为Server*/  
import java.io.*; import java.net.*;  
class MynewServer { 
    public static void main(String[] args) throws IOException     { 
        ServerSocket s = new ServerSocket(6666); 
        System.out.println("服务器端------监听中.....");         Socket socket = s.accept();  
        System.out.println("开始:" + socket);  
        GetMessage gm = new GetMessage(socket);         SendMessage sm = new SendMessage(socket);  
        Thread gt = new Thread(gm);         Thread st = new Thread(sm);  
        gt.start();         st.start();     } }  
// 接收消息 
class GetMessage implements Runnable { 
    BufferedReader in;  
    public GetMessage(Socket socket)     { 
        try         { 
            in = new BufferedReader(new 
InputStreamReader(socket.getInputStream()));         } 
        catch (IOException e)         {  
            e.printStackTrace(); 












        }     }  
    public void run()     {  
        String str = "";          
            while (true)             { 
                try                 { 
                    str = in.readLine();                 } 
                catch (IOException e)                 {  
                    e.printStackTrace();                 } 
                if (str.equals("q"))                 { 
                    break;                 }  
                System.out.print("客户端回应说:" + str);             }     }  }  
// 发送消息 
class SendMessage implements Runnable { 
    PrintWriter out;     BufferedReader is;  
    public SendMessage(Socket socket) throws IOException     {      
        out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);         is = new BufferedReader(new InputStreamReader(System.in));     } 












 
    public void run()     {  
        String input = new String();                   
            while (true)             { 
                try                 { 
                    input = is.readLine().trim();                 } 
                catch (IOException e)                 { 
                    e.printStackTrace();                 }  
                out.println(input); 
                System.out.print("服务器说:");                 out.flush();             }          }  }                   












package myfistsocket;  
/*一个作为Client*/ import java.io.*; import java.net.*;  
public class MynewClient { 
    public static void main(String[] args) throws IOException     {          
        InetAddress addr = InetAddress.getByName("127.0.0.1");  
        Socket socket = new Socket(addr, 6666);  
        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();                       } }  
// 接收消息 
class CGetMessage implements Runnable {  
    private Socket socket;     BufferedReader in;  
    public CGetMessage(Socket socket)     { 
        this.socket = socket;  
    }  
    public void run() 












    {          
            BufferedReader in;             String str = "";             while (true)             { 
                try                 { 
                    in = new BufferedReader(new InputStreamReader(socket.getInputStream()));                     str = in.readLine();                 } 
                catch (IOException e)                 { 
                    e.printStackTrace();                 }  
                System.out.println("服务器回应说:" + str);             }              }  }  
// 发送消息 
class CSendMessage implements Runnable {      
    PrintWriter out;     BufferedReader is;  
    public CSendMessage(Socket socket) throws IOException     { 
        out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);         is = new BufferedReader(new InputStreamReader(System.in));     }  
    public void run()     {  
        String input = new String();