一个服务器多客户端

按照java开发技术大全(刘新-清华出版社)的指导,今天尝试了一下java的网络作用

一下代码采用 的是tcp/ip连接方式,代码不是很难

服务器端代码:

 

  1. package com.mutouyihao;  
  2.   
  3. import java.net.ServerSocket;  
  4. import java.net.Socket;  
  5.   
  6. //server文件  
  7.   
  8. public class server  
  9. {  
  10.      
  11.    public static void main(String[] args){  
  12.       try{  
  13.        System.out.println("等待连接");  
  14.        ServerSocket sk = new ServerSocket(4000);  
  15.        Socket connectToClient = null;  
  16.        while(true){  
  17.           connectToClient=sk.accept();  
  18.           System.out.println(connectToClient.getInetAddress()+"建立连接");  
  19.           new ServerThread(connectToClient);  
  20.        }  
  21.       }catch (Exception e)   
  22.       {  
  23.          e.printStackTrace();  
  24.       }  
  25.    }  
  26.  }  

 

  1. package com.mutouyihao;  
  2.   
  3. import java.io.DataInputStream;  
  4. import java.io.DataOutputStream;  
  5. import java.io.IOException;  
  6. import java.net.Socket;  
  7. //供server调用  
  8. public class ServerThread extends Thread  
  9. {  
  10.    private Socket connectToClient;  
  11.   
  12.    private DataInputStream inFromClient;  
  13.   
  14.    private DataOutputStream outToClient;  
  15.   
  16.      
  17.    public ServerThread(Socket soc) throws IOException  
  18.    {  
  19.       super();  
  20.       connectToClient = soc;  
  21.       inFromClient = new DataInputStream(connectToClient.getInputStream());  
  22.       outToClient = new DataOutputStream(connectToClient.getOutputStream());  
  23.       start();  
  24.    }  
  25.   
  26.    public void run()  
  27.    {  
  28.       try  
  29.       {  
  30.          String str;  
  31.           
  32.          boolean goon = true;  
  33.          while (goon)  
  34.          {  
  35.             str = inFromClient.readUTF();  
  36.             if ( !str.equals("bye") )  
  37.             {  
  38.           
  39.                str = "return string" + str;  
  40.                outToClient.writeUTF(str);  
  41.                outToClient.flush();  
  42.             }  
  43.             else  
  44.             {  
  45.                goon = false;  
  46.                outToClient.writeUTF("bye");  
  47.                outToClient.flush();  
  48.             }  
  49.          }  
  50.          inFromClient.close();  
  51.          outToClient.close();  
  52.          connectToClient.close();  
  53.            
  54.       }  
  55.       catch (Exception e)  
  56.       {  
  57.          e.printStackTrace();  
  58.       }  
  59.    }  
  60. }  

 

client代码

  1. package com.mutouyihao;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.DataInputStream;  
  5. import java.io.DataOutputStream;  
  6. import java.io.InputStreamReader;  
  7. import java.net.Socket;  
  8.   
  9. public class Client  
  10. {  
  11.    public static void main(String[] args)  
  12.    {  
  13.       try  
  14.       {  
  15.          Socket connectionToServer = new Socket("localhost"4000);  
  16.          DataInputStream inFromServer = new DataInputStream(connectionToServer.getInputStream());  
  17.          DataOutputStream outToServer = new DataOutputStream(connectionToServer.getOutputStream());  
  18.          System.out.println("input your number now:");  
  19.          String outStr, inStr;  
  20.          boolean goon = true;  
  21.          BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));  
  22.          while (goon)  
  23.          {  
  24.             outStr = buf.readLine();  
  25.             outToServer.writeUTF(outStr);  
  26.             outToServer.flush();  
  27.             inStr = inFromServer.readUTF();  
  28.             if ( !inStr.equals("bye") )  
  29.                System.out.println("the returned data is:"+inStr);  
  30.             else  
  31.                goon = false;  
  32.          }  
  33.          inFromServer.close();  
  34.          outToServer.close();  
  35.          connectionToServer.close();  
  36.       }  
  37.       catch (Exception e)  
  38.       {  
  39.          e.printStackTrace();  
  40.       }  
  41.    }  
  42.   
  43. }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值