当前位置: 首页 > news >正文

长沙公司做网站凡科建站代理登录

长沙公司做网站,凡科建站代理登录,wordpress页面权限设置方法,成都微网站建设1.反转案例 搭建一个TCP客户端,从键盘录入整行数据(遇到quit结束录入)然后发送给服务器,再接收服务器返回的数据并输出。 package com.briup.chap12;public class Test064_ReversalClient {public static void main(String[] ar…

1.反转案例

搭建一个TCP客户端,从键盘录入整行数据(遇到quit结束录入)然后发送给服务器,再接收服务器返回的数据并输出。

package com.briup.chap12;public class Test064_ReversalClient {public static void main(String[] args) throws Exception {//1.创建Socket对象(指定服务器ip port) 连接到服务器Socket socket = new Socket("127.0.0.1",8989);System.out.println("成功连接到 8989服务器,socket: " + socket);//2.获取数据传输的IO流InputStream is = socket.getInputStream();OutputStream os = socket.getOutputStream();//定义增强流 更好的实现功能// 打印流 写PrintStream ps = new PrintStream(os);// 缓冲流 读取Reader r = new InputStreamReader(is);BufferedReader br = new BufferedReader(r);//3.核心业务:数据传输// 从键盘录入整行数据 发送给服务器,遇到quit结束录入Scanner sc = new Scanner(System.in);System.out.println("请录入发送数据: ");String line = null;while(true) {//录入数据  并发送line = sc.nextLine();ps.println(line);System.out.println("发送数据成功");if("quit".equals(line)) break;//从服务器接收 返回的信息(反转字符串)String msg = br.readLine();System.out.println("接收信息: " + msg);}//4.关闭资源System.out.println("客户端即将关闭");br.close();ps.close();socket.close();}
}

搭建一个TCP服务器,逐行接收从客户端发送过来的字符串(读取到quit字符串则结束读取),然后对字符串进行反转,最后把反转的字符串返回给客户端。

public class Test064_ReversalServer {//StringBuffer类测试public static void main00(String[] args) {StringBuffer sb = new StringBuffer();//追加内容sb.append("hello world");System.out.println(sb);//反转sb.reverse();System.out.println("反转后: " + sb);//获取长度int len = sb.length();//清空sb.delete(0, len);System.out.println("清空后: " + sb);}public static void main(String[] args) throws Exception {//1.搭建服务器ServerSocket server = new ServerSocket(8989);System.out.println("服务器成功启动,端口: 8989");//2.接收客户端连接Socket socket = server.accept(); System.out.println("客户端成功连接: " + socket);//3.获取IO流并增强PrintStream ps = new PrintStream(socket.getOutputStream());// 缓冲流 读取BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));//4.业务操作//  4.1 逐行收取数据String line = null;// 可变字符序列类,类似StringStringBuffer sb = new StringBuffer();while(true) {//清空序列sb.delete(0, sb.length());line = br.readLine();System.out.println("read: " + line);//读取到quit,则结束if("quit".equals(line))break;// 4.2 对收取的数据 进行 反转sb.append(line);//反转sb.reverse();//获取字符序列 包含的 字符串String msg = sb.toString();//4.3 将反转的字符串 返回给 客户端ps.println(msg);System.out.println("服务器 成功发送 反转信息...");}//5.关闭资源System.out.println("服务器即将关闭!");ps.close();br.close();socket.close();server.close();}
}

2. 传输对象

准备一个stud.txt文件,放到src/dir目录下,内容如下:

010.tom.19
001.zs.21
003.lucy.19
002.jack.20

搭建TCP客户端,逐行读取stud.txt中数据,然后转化为Student对象,最后将所有对象发送到服务器端。

Student基础类:

package com.briup.chap12;//注意,必须实现序列化接口
public class Student implements Serializable {private static final long serialVersionUID = 1L;private String id;private String name;private int age;//省略...
}

客户端代码:

package com.briup.chap12;/** 逐行读取stud.txt中 数据 --> Student对象* 再将所有对象 发送到 服务器*/
public class Test065_ObjectClient {public static void main(String[] args) throws Exception {//1.搭建客户端Socket socket = new Socket("127.0.0.1",8989);System.out.println("客户端成功连接,socket: " + socket);//2.获取流对象 并包装增强OutputStream os = socket.getOutputStream();ObjectOutputStream oos = new ObjectOutputStream(os);//3.解析文件 得到对象 并发送BufferedReader br = new BufferedReader(new FileReader("src/dir/stud.txt"));String line = null;List<Student> list = new ArrayList<>();while((line = br.readLine()) != null) {//拆分数据 001.zs.20String[] arr = line.split("[.]");String id = arr[0];String name = arr[1];int age = Integer.parseInt(arr[2]);//封装学生对象 并添加到 list集合Student s = new Student(id,name,age);list.add(s);}// 发送集合(含所有学生)oos.writeObject(list);System.out.println("学生发送成功,数量: " + list.size());//4.关闭资源System.out.println("客户端即将关闭");oos.close();socket.close();}
}

搭建TCP服务器,接收从客户端发送过来的所有学生,然后遍历输出。

package com.briup.chap12;/** 搭建服务器,接收从客户端发送过来的所有学生* 遍历输出*/
public class Test065_ObjectServer {public static void main(String[] args) throws Exception {//1.搭建服务器,指定端口ServerSocket server = new ServerSocket(8989);System.out.println("服务器启动成功  端口 8989...");//2.接收客户端的连接Socket socket = server.accept();System.out.println("客户端成功连接:" + socket);//3.获取输入流 并 包装增强InputStream is = socket.getInputStream();ObjectInputStream ois = new ObjectInputStream(is);//4.接收 遍历数据List<Student> list = (List<Student>)ois.readObject();System.out.println("成功接收学生数量: " + list.size());for (Student s : list) {System.out.println(s);}//5.资源关闭System.out.println("服务器即将终止");ois.close();socket.close();server.close();}
}

3. 多线程案例

搭建一个TCP客户端,读取键盘信息,然后发送给服务器,遇到quit退出。

package com.briup.chap12;/** 接盘录入信息  然后发给服务器,遇到quit结束*/
public class Test066_ChatClient {public static void main(String[] args) throws Exception {//1.搭建客户端Socket socket = new Socket("127.0.0.1",8989);System.out.println("客户端成功连接,socket: " + socket);//2.封装得到IO流PrintStream ps = new PrintStream(socket.getOutputStream());//3.读取键盘信息 然后发送给服务器Scanner sc = new Scanner(System.in);String line = null;while(true) {line = sc.nextLine();if("quit".equals(line))break;ps.println(line);}//4.关闭资源System.out.println("客户端即将关闭");ps.close();socket.close();}
}

搭建TCP服务器,分离多线程接收客户端发送过来的数据,然后进行输出。

package com.briup.chap12;public class Test066_ChatServer {//多线程 服务器public static void main(String[] args) throws Exception {//1.搭建服务器,指定端口ServerSocket server = new ServerSocket(8989);System.out.println("服务器启动成功  端口 8989...");while(true) {//2.接收客户端的连接Socket socket = server.accept();System.out.println("客户端成功连接:" + socket);// 单独分离子线程 为 当前客户端提供服务Thread th = new Thread() {@Overridepublic void run() {//1.获取IO流BufferedReader br = null;try {br = new BufferedReader(new InputStreamReader(socket.getInputStream()));//2.数据操作String line = null;while((line = br.readLine()) != null) {System.out.println("read: " + line);}}catch(Exception e) {e.printStackTrace();}finally {//3.关闭资源System.out.println("客户端对应资源即将关闭!");try {if(br != null)br.close();} catch (IOException e) {e.printStackTrace();}try {if(socket != null)socket.close();} catch (IOException e) {e.printStackTrace();}}}};th.start();}}//实现 单线程服务器,接收多个客户端 聊天信息public static void main01(String[] args) throws Exception {//1.搭建服务器,指定端口ServerSocket server = new ServerSocket(8989);System.out.println("服务器启动成功  端口 8989...");while(true) {//2.接收客户端的连接Socket socket = server.accept();System.out.println("客户端成功连接:" + socket);//3.封装IO流对象,逐行读取聊天信息并输出BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));String line = null;while((line = br.readLine()) != null) {System.out.println("read: " + line);}//4.关闭资源System.out.println("客户端即将关闭: " + socket);br.close();socket.close();//能否关闭 server}}
}
http://www.15wanjia.com/news/45770.html

相关文章:

  • 做网站实训心得企业网络推广软件
  • 找客户在公司做网站如何增加网站权重
  • 武汉疾控最新提醒搜索引擎优化有哪些要点
  • wordpress网赚主题网站标题seo外包优化
  • wordpress转typecho台州seo排名优化
  • 网上销售 网站建设代运营是什么意思
  • wordpress建2个网站电脑网络优化软件
  • 众筹网站建设中国域名网官网
  • h5手机端网站开发seo网站排名优化培训教程
  • 武汉市园林绿化建设管理站网站近期发生的新闻
  • 陕西有没有做网站普查公司百度推广个人怎么开户
  • 福州网站建设推广公司舆情监测系统排名
  • 中企做网站软文网站平台
  • dede网站漏洞爱站网使用体验
  • 侠客推 网站建设厦门谷歌推广
  • 做门户网站的框架淘宝权重查询入口
  • 打电话给客户怎样介绍自己是做网站的?开场白?推广普通话手抄报一等奖
  • 网站的电子画册怎么做发布任务注册app推广的平台
  • 查公司信息的网站公众号推广合作平台
  • 买个网站域名多少钱企业营销策划公司
  • 个人网站做的类型网络营销网站推广方法
  • 网站开发工资待遇企业网站制作模板
  • wordpress 酒店朝阳区seo
  • 岳阳做网站公司谷歌浏览器下载视频
  • wordpress首页生成html百度seo报价方法
  • 什么网站能免费做简历seo优化是什么意思
  • 新闻录入网站模板seo推广主要做什么的
  • 做彩票网站代理违法吗网店如何做推广
  • 个人网站制作视频南宁网络推广热线
  • 做兼职哪个招聘网站比较靠谱百度店面定位怎么申请