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

网站建设调查莱阳有网站建设推广的吗

网站建设调查,莱阳有网站建设推广的吗,wordpress不显示,网页设计与制作课程设计报告文章目录前言socket是什么#xff1f;Java中的SocketJava实现网络上传文件前言 所谓Socket#xff08;套接字#xff09;#xff0c;就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端#xff0c;提供了应用层进程利用… 文章目录前言socket是什么Java中的SocketJava实现网络上传文件前言 所谓Socket套接字就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲套接字上联应用进程下联网络协议栈是应用程序通过网络协议进行通信的接口是应用程序与网络协议栈进行交互的接口。 套接字是通信的基石是支持TCP/IP协议的路通信的基本操作单元。可以将套接字看作不同主机间的进程进行双间通信的端点它构成了单个主机内及整个网络间的编程界面。 socket是什么 一个数据包经由应用程序产生进入到协议栈中进行各种报文头的包装然后操作系统调用网卡驱动程序指挥硬件把数据发送到对端主机。整个过程的大体的图示如下。 Socket 相当于是应用程序的大门我们在网络中发送的报文都会经过这道大门才能够进入到应用程序中让应用程序来使用报文中的数据。 要写网络程序就必须用Socket 通信的两端要有Socket是两台机器间通信的端点网络通信其实就是Socket间的通信 Java中的Socket Socket允许程序把网络连接当成一个流数据在两个Socket间通过IO传输一般主动发起通信的应用程序属于客户端等待通信请求的为服务端。 Java中的网络通信时通过Socket实现的当我们需要通讯时读写数据 socket.getOutputStream()获取一个输出流 socket.getInputStream()获取一个输入流 客户端上的使用 客户端的Socket对象上的getOutputStream方法得到的输出流其实就是发送给服务器端的数据。客户端的Socket对象上的getInputStream方法得到输入流其实就是从服务器端发回的数据。 服务器端上的使用 服务端的Socket对象上的getOutputStream方法得到的输出流其实就是发送给客户端的数据。服务端的Socket对象上的getInputStream方法得到的输入流其实就是从客户端发送给服务器端的数据流。 Socket有两种编程方式 TCP编程面向连接可靠的UDP编程无连接不可靠 Socket工作流程图 Java实现网络上传文件 编写一个服务端和一个客户端要求在某端口监听端口可以自定义前提是没有被占用否则会报错。客户端连接服务端发送一张图片本地磁盘的图片可自定义服务端收到客户端发来的图片保存在服务端的项目工程目录src中保存位置可自定义之后发送收到图片并退出。客户端收到服务端发送的收到图片在退出。 注意理论上服务端和客户端的程序应该是在不同的机器上的这里为了方便使用了一台机器。所以使用了*InetAddress.getLocalHost() 获取本机IP这里可以修改为其他主机IP地址 这里说一下用的部分知识点如有疑问请自行百度进行查看 InetAddress.getLocalHost()获取本机的IP地址 serverSocket.accept()开始监听设置的端口如果有连接则返回socket对象 BufferedOutputStream()和BufferedInputStream()字节处理流包装 OutputStreamWriter(OutputStream o)将字节输出流转换为字符输出流 socket.shutdownInput()和socket.shutdownOutput分别为发送数据的输入/输出结束标记 注意StreamUtils类是自定义的工具类其中streamToByteArray是将文件输入流转换为字节数组文件数据streamToString将文件输入流转换为字符串数据具体定义代码在下方 整体演示流程图如下 这里需要注意如果使用字符流进行输出则需要刷新或关闭才能写入数据此案例使用的字节流 StreamUtils工具类 import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.InputStreamReader;/*** 此类用于演示关于流的读写方法**/ public class StreamUtils {/*** 功能将输入流转换成byte[] 即可以把文件的内容读入到byte[]* param is* return* throws Exception*/public static byte[] streamToByteArray(InputStream is) throws Exception{ByteArrayOutputStream bos new ByteArrayOutputStream();//创建输出流对象byte[] b new byte[1024];//字节数组int len;while((lenis.read(b))!-1){//循环读取bos.write(b, 0, len);//把读取到的数据写入bos }byte[] array bos.toByteArray();//然后将bos 转成字节数组bos.close();return array;}/*** 功能将InputStream转换成String* param is* return* throws Exception*/public static String streamToString(InputStream is) throws Exception{BufferedReader reader new BufferedReader(new InputStreamReader(is));StringBuilder builder new StringBuilder();String line;while((linereader.readLine())!null){builder.append(line\r\n);}return builder.toString(); } }服务端 import java.io.*; import java.net.ServerSocket; import java.net.Socket;public class TCPFileUploadServer {public static void main(String[] args) throws Exception {//服务端在本机监听9999端口ServerSocket serverSocket new ServerSocket(9999);//等待连接Socket socket serverSocket.accept();//读取客户端发送的数据通过socket得到输入流BufferedInputStream bufferedInputStream new BufferedInputStream(socket.getInputStream());byte[] bytes StreamUtils.streamToByteArray(bufferedInputStream);socket.shutdownInput();//将得到的bytes数组写入到服务端的指定位置String dest src\\test.png;BufferedOutputStream bufferedOutputStream new BufferedOutputStream(new FileOutputStream(dest));bufferedOutputStream.write(bytes);//服务端给客户端发送回复bufferedOutputStream new BufferedOutputStream(socket.getOutputStream());bufferedOutputStream.write(收到图片.getBytes());//字符流方式 // BufferedWriter bufferedWriter new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); // bufferedWriter.write(收到图片); // bufferedWriter.flush(); // socket.shutdownOutput();//关闭资源System.out.println(关闭服务端);bufferedOutputStream.close();bufferedInputStream.close();socket.close();serverSocket.close(); // bufferedWriter.close();} }客户端 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.net.InetAddress; import java.net.Socket;public class TCPFileUploadClient {public static void main(String[] args) throws Exception {//客户端连接服务端9999端口Socket socket new Socket(InetAddress.getLocalHost(), 9999);//创建读取磁盘文件的输入流String file E:\\test.png;BufferedInputStream bufferedInputStream new BufferedInputStream(new FileInputStream(file));//bytes就是对应的字节数组byte[] bytes StreamUtils.streamToByteArray(bufferedInputStream);//通过socket获取到一个输出流将bytes数据发送到服务端BufferedOutputStream bufferedOutputStream new BufferedOutputStream(socket.getOutputStream());bufferedOutputStream.write(bytes);socket.shutdownOutput();//写入数据的一个结束标记//接收服务端的回复bufferedInputStream new BufferedInputStream(socket.getInputStream());String s StreamUtils.streamToString(bufferedInputStream);System.out.println(s);socket.shutdownInput();//关闭资源System.out.println(关闭客户端);bufferedInputStream.close();bufferedOutputStream.close();socket.close();} }
http://www.w-s-a.com/news/69722/

相关文章:

  • 云脑网络科技网站建设咸阳软件开发
  • seo对网站优化网站更换程序
  • 网站建设放什么科目中小学生在线做试卷的网站6
  • 网站建设推广公司排名绥化建设局网站
  • 凡科做的网站为什么打不开苏州行业网站建设
  • 南昌定制网站开发费用微信小商店官网入口
  • 深圳网站建设费用找人做的网站怎么看ftp
  • 做网站cookie传值dedecms网站后台
  • 温州网站推广网站建设要学会什么
  • c 网站开发框架品牌策划方案范文
  • 儿童摄影作品网站多元网络兰州网站建设
  • 电脑上不了建设厅网站常德网站建设费用
  • 做单页免费模板网站最新办公室装修风格效果图
  • 中国铁路建设投资公司网站熊学军想开网站建设公司
  • 优化一个网站多少钱网站开发北京
  • html教学关键词优化价格
  • 黄冈论坛网站有哪些给wordpress首页添加公告栏
  • 初中做数学题的网站做淘宝必备网站
  • 买拆车件上什么网站谁有那种手机网站
  • 一家专做有机蔬菜的网站万户网络是干嘛的
  • 十堰百度网站建设八宝山做网站公司
  • 地区电商网站系统建筑施工图纸培训班
  • 网站外包维护一年多少钱医院网站 功能
  • 电子商务市场的发展前景seo推广平台服务
  • 乐清网页设计公司哪家好seo推广任务小结
  • 360建筑网是什么pc优化工具
  • 越秀免费网站建设风景区网站建设项目建设可行性
  • 网站建站公司一站式服务学校网站开发招标
  • asp.net mvc 5 网站开发之美电商网站 流程图
  • 室内设计素材网站推荐郑州专业做淘宝网站建设