admin管理员组

文章数量:1434889

【C/S】

import java.net.*;
import java.io.*;
import java.util.*;
public class TestServer01{// 服务器端 -- 接收一行内容static Set<String> ipSet = new HashSet<>();				//静态的set集合 哈希Setpublic static void main(String[] args)throws Exception{ //Socket  英语:袜子 可以理解为电话线ServerSocket server = new ServerSocket(12666);		//创建Socket服务 并且指定 端口号 相当于门牌号boolean isRunning = true;							//标识符 控制while循环;写true的话是死循环,系统编译不通过,这样骗过系统,才能执行下面的关闭操作while(isRunning){									//while循环Socket skt = server.accept();					//接收Socket服务:accept()方法 -- 大堂经理ServerThread st = new ServerThread(skt);		//大堂经理招呼一个 服务员(线程) 去服务来的客人,然后大堂经理继续在大厅迎客st.start();										//服务员开始服务}server.close();										//关闭Socket服务}
}
class ServerThread extends Thread{							//创建线性的第一种方式 相当于学生类Socket skt;					  							//创建 Socket属性 相当于学生姓名public ServerThread(Socket skt){						//创建构造方法 知道为哪个Socket服务 听哪一个大堂经理的this.skt = skt;}@Overridepublic void run(){try{												//抛异常try catchInputStream is = skt.getInputStream();			//通过Socket获得输入流 getInputStream() 不是new!!!InputStreamReader r = new InputStreamReader(is);//桥转换器:字节 -》字符BufferedReader br = new BufferedReader(r);		//BufferedReaderString str = br.readLine();						//读取一行String ip = skt.getInetAddress().toString();	//获取ip地址并转成字符串TestServer01.ipSet.add(ip);						//将ip添加到set集合System.out.println(ip+ " : " + str + "    "+TestServer01.ipSet.size() + "/55");//输出ip和内容br.close();										//关BufferedReaderskt.close();									//关Socket}catch(Exception e){e.printStackTrace();}}
}
import java.net.*;
import java.io.*;
import java.util.concurrent.*;
public class TestServer02{ // 服务器端 -- 提供图片下载public static void main(String[] args)throws Exception{ExecutorService es = Executors.newCachedThreadPool();//创建带缓存机制的线程池 -- 执行器工具类.缓冲机制线程池ServerSocket server = new ServerSocket(12345);		 //创建Socket服务 ServerSocket,指定端口号 -- 门牌号boolean isRunning = true;							 //设置循环控制变量,避免死循环无法执行之后的关闭操作while(isRunning){									 //while循环Socket skt = server.accept();					 //接收Socket服务accept()方法 -- 大堂经理EtoakThread et = new EtoakThread(skt);			 //大堂经理招呼 服务员--线程 服务来的客人es.submit(et);									 //服务员开始服务}server.close();										 //关闭Socket服务es.shutdown();										 //关闭执行器}
}
class EtoakThread implements Callable<String>{				 //创建线程的第三种方式Socket skt;												 //创建Socket属性 相当于学生姓名public EtoakThread(Socket skt){							 //构造方法:知道为哪个Socket服务this.skt = skt;}@Overridepublic String call()throws Exception{					 //覆盖call()方法 有返回值 且 能抛异常FileInputStream fis = new FileInputStream("jay.jpg");//创建输入流对象 newOutputStream os = skt.getOutputStream();			 //通过Socket获得输出流byte[] data = new byte[65536];						 //配合数组完成写出int len;											 //规定写出长度while((len = fis.read(data))!=-1){					 //while循环:输入流读不到-1则继续执行os.write(data,0,len);							 //输出流写出}os.close();											 //关输出流fis.close();										 //关输入流skt.close();										 //关SocketSystem.out.println(skt.getInetAddress() + "下载完毕");//提示某个ip下载完成return "ETOAK";										  //返回一个字符串}
}
import java.net.*;
import java.io.*;
import java.util.concurrent.*;public class TestServer03{ // 服务器端 -- 接收客户端发来的内容 返回相应指定的内容public static void main(String[] args)throws Exception{ExecutorService es = Executors.newFixedThreadPool(5); //创建可修复的线程池 执行器类.可修复线程池ServerSocket server = new ServerSocket(12000);		  //创建Socket服务 且指定端口号 -- 门牌号boolean isRunning = true;							  //设置循环变量控制变量 避免死循环无法执行之后的关闭操作while(isRunning){									  //while循环Socket skt = server.accept();					  //接收Socket服务accept()方法 -- 大堂经理ServerThread st = new ServerThread(skt);		  //大堂经理招呼 服务员--线程 服务来的客人es.submit(st);									  //开始服务}server.close();										  //关闭Socket服务es.shutdown();										  //关闭执行器}}
class ServerThread implements Runnable{						 //创建线程的第二种方式Socket skt;												 //创建Socket属性 相当于学生姓名public ServerThread(Socket skt){						 //构造方法:知道为哪个Socket服务this.skt = skt;}@Overridepublic void run(){										 //覆盖run()方法try{												 //try catch处理异常//1.接InputStream is = skt.getInputStream();			 //通过Socket获得输入流InputStreamReader r = new InputStreamReader(is); //桥转换器 字节 -》字符BufferedReader br = new BufferedReader(r);		 //BufferedReaderString name = br.readLine();					 //读一行//2.化String result = X.get(name);					 //类名.get() 获得内容//3.发OutputStream os = skt.getOutputStream();		 //通过Socket获得输出流PrintWriter pw = new PrintWriter(os,true);		 //PrintWriter 且 清空缓冲pw.println(result);								 //输出 所获得的内容pw.close();										 //关闭PrintWriterbr.close();										 //关闭BufferedReaderskt.close();									 //关闭SocketSystem.out.println(skt.getInetAddress() + " : " + name + " -> "+result);//打印哪个ip 输入的名字 的结果}catch(Exception e){e.printStackTrace();}}
}class X{public static String get(String name){					//静态get(String)if(name.contains("吴") || name.contains("老大") )   //判断是否包含特定字return "天机不可泄露";							//结束方法 返回指定内容String[] data = {"去陪凢凢","命运多舛","平平淡淡","大富大贵","天命之子"};//String[] 装命运的五种描述int x = name.hashCode()*17/3-1;						//获得名字的hashCode()long time = System.currentTimeMillis() / (24L*60*60*1000);//获得当前时间的整天数x += time*53/29;									//由名字的hashCode()和时间决定的一个值x = Math.abs(x);									//绝对值x = x % data.length;								//对数组的长度取模获取下标return data[x];										//返回数组}
}
import java.io.*;
import java.net.*;
import javax.swing.*;
public class TestClient01{public static void main(String[] args)throws Exception{while(true){String str = JOptionPane.showInputDialog(null,"请输入内容:");if("88".equals(str)){break;}Socket skt = new Socket("192.168.31.85",12666);OutputStream os = skt.getOutputStream();OutputStreamWriter w = new OutputStreamWriter(os,"GBK");PrintWriter pw = new PrintWriter(w,true);pw.println(str);pw.close();skt.close();}}
}
import java.net.*;
import java.io.*;
public class TestClient02{public static void main(String[] args)throws Exception{Socket skt = new Socket("192.168.31.85",12345);InputStream is = skt.getInputStream();FileOutputStream fos = new FileOutputStream("ok.jpg");byte[] data = new byte[65536];int len;while((len = is.read(data))!=-1){fos.write(data,0,len);}fos.close();is.close();skt.close();}
}
import java.net.*;
import java.io.*;
public class TestClient03{public static void main(String[] args)throws Exception{Socket skt = new Socket("192.168.31.85",12000);OutputStream os = skt.getOutputStream();PrintWriter pw = new PrintWriter(os,true);pw.println("张总");InputStream is = skt.getInputStream();InputStreamReader r = new InputStreamReader(is);BufferedReader br = new BufferedReader(r);String result = br.readLine();br.close();pw.close();skt.close();System.out.println(result);}
}

本文标签: cs