⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test6server.java

📁 JAVA多线和聊天程序Client
💻 JAVA
字号:

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

   public class test6Server implements Runnable
   {       
			static int  arrivsum[]={0,0,0,0,0,0,0,0,0,0};//保存出勤的次数
			static int  leavsum[]={0,0,0,0,0,0,0,0,0,0};//保存离开的次数
			static int counter=0;//用来计算是否全部人已离开
			int receivsum=0;
			Socket socket;
			public test6Server(Socket serve)
			{
			      socket =serve;
			}

			public static void main(String args[])
			{
				int MaxClientNum=10;//最大的客户端数量
				try
				{
					ServerSocket    server =new ServerSocket(7000);//建立Server Socket
					for (int i=0;i<MaxClientNum ;i++ )
					{
					     Socket socket =server.accept();					    
					     Thread  t=new Thread(new test6Server(socket)); //连接建立,创建一个Server端线程与Client 端通信
					     t.start();//线程就绪
					}//end for
					server.close();

				} catch (Exception e)
				{   
					System.out.println("Error:"+e);
				}
			}//end main
						
			public void run()//服务端通信的线程体
			{
				try
				{
						BufferedReader in =new BufferedReader(new InputStreamReader(socket.getInputStream()));
						PrintWriter out=new PrintWriter (socket.getOutputStream());
						BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
						String s;

						while(true)
						{			
						        if ((s=in.readLine()).equals("arrive"))
								{
									 receivsum=Integer.parseInt(in.readLine());
									 System.out.println("员工 "+receivsum+":"+s);
									 arrivsum[receivsum-1]=arrivsum[receivsum-1]+1;
									 counter++;
									 out.println("确认出勤");
									 out.flush();														
								}//end if

							    if (s.equals("leave"))
								{
									receivsum=Integer.parseInt(in.readLine());
									System.out.println("员工 "+receivsum+":"+s);
									leavsum[receivsum-1]=leavsum[receivsum-1]+1;
									counter--;
									out.println("确认离开");
									out.flush();
								}

							    if (s.equals("close"))
								{
									System.out.println("与客户端:  "+receivsum+" 的连接已关闭!");
								}
								if (counter==0)
								{
									System.out.println("所有员工都已经离开了公司,现在可以关闭服务器了!");
									break;									
								}
						}//end while

						in.close();
						out.close();
						socket.close();
									
						FileWriter fileout=new FileWriter("memberfile.txt");//创建保存数据的文件

						for (int i=0;i<arrivsum.length ;i++ )
						{
							fileout.write((i+1)+"号员工出勤次数:"+arrivsum[i]+"      ");//把员工出勤次数写入文件中去
							fileout.write((i+1)+"号员工离开次数:"+leavsum[i]+"      ");	//把员工离开次数写入到文件中		   
						}
						fileout.close();
			    }catch (Exception e)
				{  							
				    ;
				}
            }//end run
   };

⌨️ 快捷键说明

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