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

厦门网站建设开发找人开发一款app需要多少钱

厦门网站建设开发,找人开发一款app需要多少钱,如何做外贸网站,上海网站建设服务多少钱文章目录前言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.hkea.cn/news/14308279/

相关文章:

  • 品牌网站建设968河北建设银行招聘网站
  • 室内设计官方网站百度网站建设怎么联系
  • 有那些专门做财务分析的网站wordpress主题 missoften
  • 手机 网站建设网站改版怎样做301
  • 福田设计网站公司注册在自贸区的利弊
  • 花都网站建设公司建站服务器
  • win2008做网站建立一个网站
  • asp网站版权宁波网站建设企业
  • 网站的规划和建设方案科技企业网站
  • 木马网站链接有什么wordpress主题 苏醒
  • 济南网站建设是什么seo优化网站词
  • 做自适应网站对设计稿的要求平谷重庆网站建设
  • 镭拓网站建设官网网站建设 指标
  • 万维网包括哪些网站做网络推广怎么收费
  • 足球网站建设意义做网站图片要求
  • 用模板怎么做网站兰州生活网
  • html网站登陆页面模板网站的icon图标做多大
  • 水果电子商务网站建设规划书制作软件的app有哪些
  • 秦皇岛网站制作方案同德县网站建设公司
  • 郑州制作网站哪家好网站建设需要些什么软件
  • 网站开发php制作北京环保行业网站建设
  • 网站建设课程设计的必要性网站建设的论文的参考文献
  • 网站模板功能为啥开发app不建议uniapp
  • 电大的网站界面ui设计训练怎么做中国兰州
  • 好看的网站的导航怎么做人才网招聘官方网
  • 巩义做网站推广公司网站开发费用放在什么科目
  • 如何选择企业网站建设2024年阳性什么症状
  • 做搜狗pc网站优化首滨江道做网站公司
  • 网站开发技术可行性分析怎么写注册网站会不会有风险
  • 来几个好看的网站网站建设项目可行性分析报告