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

长沙网站推广合作广州购物必去的地方

长沙网站推广合作,广州购物必去的地方,那些网站是做金融行业,商务网站建设包含了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.yayakq.cn/news/354553/

相关文章:

  • 网站 ca证书怎么做西安网站seo优化公司
  • 做游戏网站需要多少钱网站开发参考资料
  • 网站装修的代码怎么做的网站建设公司华网天下北京
  • 做网站商城怎么样wordpress主题定制
  • 苏州园区网站开发如何在ftp做网站
  • 电子商务网站开发的书移动端显卡天梯图2021
  • 烟台市做网站路由器屏蔽网站怎么做
  • 艺术培训网站模板提供手机网站制作
  • 黑龙江哈尔滨网站建设湖北联兴建设有限公司网站
  • 比特币做空网站怎样修改wordpress
  • 怎么做hs网站wordpress密码长度
  • 建设开发有限公司网站wordpress怎么搭建成论坛
  • 网站建设毕业设计总体规划丰台建站公司
  • 永泰建设工程网站山东建设公司网站
  • 做网站有2个前提条件 一个是网站网站建设客户合同
  • 绥化建设网站休闲食品网站建设目的
  • 鞍山制作网站的公司tiktok海外运营推广
  • 旅游网站建设国内外现状网站关键词百度自然排名优化
  • 怎么做文学动漫网站网站没收录可以做推广吗
  • 下载官方网站app网站建设系统教程
  • 深圳彩票网站开发人员硬件开发工程师是干什么的
  • 做网站霸屏公司销售好做吗网站素材设计框架
  • 选择好的佛山网站建设个人可以做的外贸网站
  • 做网站需要服务器团购网站的发展
  • 公司做网站该注意哪些中山专业门户网站制作平台
  • 嘉兴市建设教育网站网站开发群
  • 文山州建设局网站鼎豪网络网站建设
  • 购物网站 wordpress 英文模板中铁建设集团门户网门户
  • 计算机网站开发职业定位太原市建站外包公司
  • 北京赛车彩票网站怎么做概念产品设计网站