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

📄 tserver.java

📁 本系统由applet和服务端组成。由客户端录入温度
💻 JAVA
字号:
package server;

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

import util.*;

public class TServer{
		static String info;
		static double temperature;
		static ArrayList clientList=new ArrayList();
		
				
		public static void main(String args[]){
			ServerSocket svc_socket=null;	Svc_thread svc_thread;
			Socket c_socket=null;
			while(true){
				try{
					svc_socket=new ServerSocket(12345);		
				}
				catch(IOException e){Debug.println("正在监听……");}	
				try{
					c_socket=svc_socket.accept();
					clientList.add(c_socket);
				}
				catch(IOException e){Debug.println("正在等待用户……");}
				if(c_socket!=null){
					new Svc_thread(c_socket).start();						
				}
				else{continue;}
			}//while()
		}//main()
		
		
		
}

class Svc_thread extends Thread{
		Socket socket1;
		DataOutputStream out=null;DataInputStream in=null;
		String s=null;
		double value=0;	

		
		Svc_thread(Socket t){
			socket1=t;
			try{
			in=new DataInputStream (socket1.getInputStream());
			out=new DataOutputStream (socket1.getOutputStream());
			}
			catch(IOException e){}
		}
		
		public void run(){
			try{
					out.writeUTF("rev ready");
					out.writeUTF(String.valueOf(TServer.temperature));
					Debug.println("发送rev ready&"+TServer.temperature);
					
			}catch(Exception ee){Debug.println("发送失败");}
			while(true){
				try{

					s=null;
					s=in.readUTF();
					Debug.println("收到"+s);
					if(s.equals("send value")){
							Debug.println("send value request accepted");
						
							value=Double.valueOf(in.readUTF()).doubleValue();	
						  Debug.println("收到"+value);
											
							TServer.temperature=value;
						
							sendToAllClient();
					}//if
				}//try
				
				catch(IOException ee){ 
					Debug.println("一个客户离开");
					TServer.clientList.remove(socket1);//用户离开时从套接子列表中移除连接;
					//不然程序会向已不存在的客户发数据,进而会使服务端不能正常工作
					break;
				}
				catch(Exception e){break;}
			}//while
		
		}//run
		
		
		/*
		向所有客户发送数据
		*/
		public void sendToAllClient() throws IOException{
					Iterator clients=TServer.clientList.iterator();
					DataOutputStream out=null;DataInputStream in=null;
					Socket tmpSocket=null;
					while(clients.hasNext()){
								tmpSocket=(Socket)clients.next();
								in=new DataInputStream (tmpSocket.getInputStream());
								out=new DataOutputStream (tmpSocket.getOutputStream());
								out.writeUTF("rev ready");
								out.writeUTF(String.valueOf(TServer.temperature));
								Debug.println("sendToAllClient temperature value is "+TServer.temperature);

					}
		}




}//class

⌨️ 快捷键说明

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