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

楼盘网站建设方案装修旧房翻新价格表

楼盘网站建设方案,装修旧房翻新价格表,安卓手机软件开发教程,网站如何做百度推广TCP Socket编程 1. ServerSocket2. Socket3. TCP的长短连接4. Socket 通信模型5. 代码示例#xff1a;TCP 回显服务器 流套接字#xff1a; 使用传输层TCP协议 TCP: 即Transmission Control Protocol#xff08;传输控制协议#xff09;#xff0c;传输层协议。 TCP的特点… TCP Socket编程 1. ServerSocket2. Socket3. TCP的长短连接4. Socket 通信模型5. 代码示例TCP 回显服务器 流套接字 使用传输层TCP协议 TCP: 即Transmission Control Protocol传输控制协议传输层协议。 TCP的特点: 有连接可靠传输面向字节流有接收缓冲区也有发送缓冲区大小不限 1. ServerSocket ServerSocket 是创建TCP服务端Socket的API。 注意: ServerSocket 只能用于 服务器端。 构造方法 方法签名方法说明ServerSocket(int port)创建一个服务端流套接字Socket并绑定到指定端口 方法 方法签名方法说明Socket accept()开始监听指定端口创建时绑定的端口有客户端连接后返回一个服务端Socket对象并基于该Socket建立与客户端的连接否则阻塞等待void close()关闭此套接字 2. Socket Socket 是客户端Socket或服务端中接收到客户端建立连接accept方法的请求后返回的服务端Socket。 构造方法 方法签名方法说明Socket(String host, int port)创建一个客户端流套接字Socket并与对应IP的主机上对应端口的进程建立连接 注意这里面的 host 和 port 是要连接的服务器的 IP 地址和端口号。 方法 方法签名方法说明InetAddress getInetAddress()返回套接字所连接的地址InputStream getInputStream()返回此套接字的输入流OutputStream getOutputStream()返回此套接字的输出流 3. TCP的长短连接 TCP发送数据时需要先建立连接什么时候关闭连接就决定是短连接还是长连接 短连接 每次接收到数据并返回响应后都关闭连接即是短连接。也就是说短连接只能一次收数据。 长连接 不关闭连接一直保持连接状态双方不停的收发数据即是长连接。也就是说长连接可以多次收发数据。 两者区别如下 建立连接、关闭连接的耗时短连接每次请求、响应都需要建立连接关闭连接而长连接只需要第一次建立连接之后的请求、响应都可以直接传输。相对来说建立连接关闭连接也是要耗时的长连接效率更高。主动发送请求不同短连接一般是客户端主动向服务端发送请求而长连接可以是客户端主动发送请求也可以是服务端主动发。两者的使用场景有不同短连接适用于客户端请求频率不高的场景如浏览网页等。长连接适用于客户端与服务端通信频繁的场景如聊天室实时游戏等。 4. Socket 通信模型 5. 代码示例TCP 回显服务器 服务器代码 class TcpEchoServer {public ServerSocket serverSocket;//专门用来接受请求并建立链接public Socket clientSocket;//专门用来处理请求public TcpEchoServer(int port) throws IOException {this.serverSocketnew ServerSocket(port);}public void start() throws IOException {System.out.println(服务器启动!);//也可以利用线程池ExecutorService threadsPool Executors.newCachedThreadPool();while(true){//接受请求clientSocketserverSocket.accept(); // //利用多线程才能让服务器同时处理多个客户端的请求 // Thread tnew Thread(()-{ // //建立链接并处理请求 // try { // createConnection(clientSocket); // } catch (IOException e) { // throw new RuntimeException(e); // } // }); // t.start();//创建线程池相对于每次创建一个线程来说效率更高一些threadsPool.submit(()-{try {createConnection(clientSocket);} catch (IOException e) {throw new RuntimeException(e);}});}}public void createConnection(Socket clientSocket) throws IOException {System.out.printf([%s:%d]建立链接成功\n,clientSocket.getInetAddress().toString(),clientSocket.getPort());//三个步骤//1.读取客户端请求(根据打开的文件流确定了读取的是客户端发来的请求)//这里针对TCP的读写和对于文件的读写是一摸一样的//利用socket构造文件流try(InputStream inputStreamclientSocket.getInputStream()){//注意打开的流//直接利用scanner读取(利用原生的InputStream也是可以的,但Scanner更方便)Scanner scannernew Scanner(inputStream);try(OutputStream outputStreamclientSocket.getOutputStream()){//注意打开的流while(true){if(!scanner.hasNext()){System.out.printf([%s:%d]断开链接\n,clientSocket.getInetAddress().toString(),clientSocket.getPort());break;}//读取请求(TCP以字符流进行传输)// 读到空白符/ 空格/换行才会停止String requestscanner.next();//2.根据请求计算响应String responseprocess(request);//3.返回响应(根据打开的文件流决定了是往客户端返回请求)//为了方便用PrintWriter对OutputStream进行包裹PrintWriter printWriternew PrintWriter(outputStream);// 因为使用 next读到空白符/ 空格/换行才会停止,所以须使用 println printWriter.println(response);printWriter.flush();System.out.printf([%d][req:%s resp:%s]\n,clientSocket.getPort(),request,response);}}}finally {clientSocket.close();//记得及时关闭}}public String process(String request){return request;}public static void main(String[] args) throws IOException {TcpEchoServer tcpEchoServernew TcpEchoServer(9090);tcpEchoServer.start();} }客户端代码 class TcpEchoClient {public Socket client;//TCP中客户端构造函数的ip和port指的是要链接的服务器的IP和portpublic TcpEchoClient(String serverIp, int serverPort) throws IOException {this.client new Socket(serverIp, serverPort);}public void start() throws IOException {System.out.println(和服务器建立链接成功);Scanner scanner new Scanner(System.in);//这里针对TCP的读写和对于文件的读写是一摸一样的//利用socket构造文件流try (InputStream inputStream client.getInputStream()) {try (OutputStream outputStream client.getOutputStream()) {//接收从控制台输入的字符串while (true) {System.out.println(-);String request scanner.next();//构造请求并发送请求(PrintWriter和Scanner对应)//注意文件流PrintWriter printWriter new PrintWriter(outputStream);// 因为使用 next读到空白符/ 空格/换行才会停止,所以须使用 println printWriter.println(request);printWriter.flush();//如果不及时刷新,服务器可能不能及时接收到数据//接收响应Scanner respScanner new Scanner(inputStream);String response respScanner.next();//显示到控制台上System.out.printf([req:%s resp:%s]\n, request, response);}}}}public static void main(String[] args) throws IOException {TcpEchoClient tcpEchoClient new TcpEchoClient(127.0.0.1, 9090);tcpEchoClient.start();} }注意当然要先启动服务器再启动客户端 好啦 以上就是对 TCP Socket编程的讲解希望能帮到你 评论区欢迎指正 !
http://www.pierceye.com/news/17522/

相关文章:

  • 做网站的项目开发计划书用电脑做网站服务器
  • 受欢迎的网站建设平台公司企业模板
  • 服务器系统搭建网站源码如何查询自己二建的状态
  • 门户网站的好处高端购物网站建设
  • 建设网站需要那些技术人员c 网站开发技术
  • 游戏推广平台代理加盟重庆公司网站seo
  • 做自媒体怎么在其它网站搬运内容网站建设 业务
  • 建设银行网站入口域名后缀一览表
  • 电子商务网站建设情况深圳市建设主管部门门户网站
  • 赣州建站服务宁波市网站建设制作费用
  • 深圳 网站wordpress手机客户端端
  • 网站建设实现的目标模板网站如何建站
  • 2345浏览器免费网站鹤山市住房和城乡建设局网站
  • 我们网站百度快照显示违规内容白云鄂博矿网站建设
  • 安徽省安徽省建设工程信息网站大连营销推广
  • 江都建设集团有限公司官方网站郑州房产网58同城网
  • 北京企业网站建设公司淘客网站如何做能加快收录
  • 长沙网站制作公司哪家好六安企业网站seo多少钱
  • 北京低价做网站河北建投商务网
  • 东风多利卡道路清障车做网站网络科技公司一般是做什么的
  • 外贸网站策划所有网站排名2015年
  • 门户网站建设的书籍wordpress网页效果
  • 中等职业学校网站建设模块网站建设背景资料
  • 长治个人网站建设深圳网站建设哪个公司好
  • 手工做皮具国外的网站企业网站建设公司怎么收费
  • 国外做蛋糕的网站如何做好企业网站的推广
  • 《网站建设教程大型网页游戏有哪些
  • 昆明做网站的网络公司电商网站开发技术难点
  • 上海的设计网站有哪些seo顾问 工资
  • 徐州市城乡和城乡建设厅网站首页广州网站设计哪个好