clientsendfile.java~3~

来自「1. 消息即时通信 2. 消息发送实现一对一、一对多等多种发送模式 3. 发」· JAVA~3~ 代码 · 共 82 行

JAVA~3~
82
字号

import java.io.*;
import java.net.*;
import java.util.*;

public class ClientSendFile {
  ServerSocket sendFileSocket=null;
  Socket socket=null;
  File toSendFile;
  Hashtable saveThread=new Hashtable();
  static Hashtable saveServerSocket=new Hashtable();
  String key=null;

  public ClientSendFile(File file,String toPeople){

    StringTokenizer fenxi=new StringTokenizer(toPeople,"$");
    int n=fenxi.countTokens();

    for(int i=0;i<=n-1;i++){
      String name=fenxi.nextToken();
      boolean isExist=saveServerSocket.containsKey(name);
      if (!isExist) {
        int port = ClientSendFile.selectPort();
        try {
          sendFileSocket = new ServerSocket(port);
          saveServerSocket.put(name, new Integer(port));
        }
        catch (IOException e) {
          e.printStackTrace();
        }
      }
      else {
      //Object port=
        int port=((Integer)saveServerSocket.get(name)).intValue();
        try{
          sendFileSocket = new ServerSocket(port);
        }catch(IOException e){
          System.out.println("正在侦听...");
          //e.printStackTrace();
        }
        //发送通知
      }
    }

  }













  public static int selectPort(){
    for(int i=4000;i<4100;i++){
        try {
          ServerSocket serversocket = new ServerSocket(i);
          return i;
        }
        catch (IOException e) {
         System.out.println("error");
        }
      }
    return 0;
  }


  public static void main(String[] args) {
  }

}





⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?