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

wordpress vip会员插件seo自媒体运营技巧

wordpress vip会员插件,seo自媒体运营技巧,成都代理注册公司电话,去菲律宾做网站第二十一章 网络通信 本章节主要讲解的是TCP和UDP两种通信方式它们都有着自己的优点和缺点 这两种通讯方式不通的地方就是TCP是一对一通信 UDP是一对多的通信方式 接下来会一一讲解 TCP通信 TCP通信方式呢 主要的通讯方式是一对一的通讯方式,也有着优点和缺点 …

第二十一章 网络通信
本章节主要讲解的是TCP和UDP两种通信方式它们都有着自己的优点和缺点  这两种通讯方式不通的地方就是TCP是一对一通信  UDP是一对多的通信方式  接下来会一一讲解

TCP通信

TCP通信方式呢  主要的通讯方式是一对一的通讯方式,也有着优点和缺点  它的优点对比于UDP来说就是可靠一点  因为它的通讯方式是需要先发送消息 看看客户端是否能够接收到消息 如果没有回复消息的话 服务端  就不会发出文件 等待客户端回复消息,这个握手模式的话  就会非常可靠  以下代码进行讲解:

客户端代码:

package tcp;
 
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
 
/**
 * Socket客户端
 **/
public class SocketClient {
    public static void main(String[] args) {
        Socket s = null;
        try {
            // 与ip为127.0.0.1、端口为12345的服务端建立连接
            s = new Socket("127.0.0.1", 12345);
 
            // 创建输入流接收服务端发送的消息(字节流)
            InputStream is = s.getInputStream();
            // 将服务端返回的字节流转化为字符流
            InputStreamReader isr = new InputStreamReader(is);
            // 创建字符流读取缓冲区,方便每行读取
            BufferedReader br = new BufferedReader(isr);
 
            // 创建输出流返回消息
            OutputStream os = s.getOutputStream();
            // 创建输出流缓冲
            PrintWriter pw = new PrintWriter(os);
 
            // 创建发送消息的线程
            Runnable rOut = () -> {
                boolean flag = true;
                while (flag) {
                    try {
                        // 接收控制台输入
                        Scanner scan = new Scanner(System.in);
                        String msg = scan.nextLine();
                        // 将输入写入缓冲
                        pw.println(msg);
                        // 将缓冲内的数据推送至服务端并清空缓冲区
                        pw.flush();
                    } catch (Exception e) {
                        flag = false;
                        e.printStackTrace();
                    }
                }
            };
 
            // 创建接收消息的线程
            Runnable rIn = () -> {
                boolean flag = true;
                while (flag) {
                    try {
                        // 逐行读取服务端返回的消息并打印
                        String str = br.readLine();
                        System.out.println("服务端的消息:" + str);
                    } catch (IOException e) {
                        flag = false;
                        e.printStackTrace();
                    }
                }
            };
 
            // 启动两个线程
            Thread tOut = new Thread(rOut);
            Thread tIn = new Thread(rIn);
            tOut.start();
            tIn.start();
        }catch (IOException e) {
            try {
                // 释放资源
                s.close();
            } catch (Exception exception) {
                exception.printStackTrace();
            }
            e.printStackTrace();
        }
    }
}

服务端代码:

package tcp;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
 
/**
 * Socket服务端
 **/
public class SocketServer {
    public static void main(String[] args) {
        ServerSocket ss = null;
        Socket s = null;
        try {
            // 创建监听端口为12345的Socket服务端
            ss = new ServerSocket(12345);
            System.out.println("服务端Socket服务已建立,等待客户端连接...");
            // 通过ss.accept()开始持续监听12345端口,当有连接时获取收到的包装成Socket的客户端对象
            s = ss.accept();
            // 获取客户端的IP地址和端口号
            String ip = s.getInetAddress().getHostAddress();
            int port = s.getPort();
            System.out.println("服务端与 " + ip + ":" + port + " 已建立连接");
 
            // 创建输入流接收客户端发送的消息(字节流)
            InputStream is = s.getInputStream();
            // 将客户端发送的字节流转化为字符流
            InputStreamReader isr = new InputStreamReader(is);
            // 创建字符流读取缓冲区,方便每行读取
            BufferedReader br = new BufferedReader(isr);
 
            // 创建输出流返回消息
            OutputStream os = s.getOutputStream();
            // 创建输出流缓冲
            PrintWriter pw = new PrintWriter(os);
 
            // 创建接受信息的线程
            Runnable rIn = () -> {
                boolean flag = true;
                while (flag) {
                    try {
                        // 逐行读取客户端发送的消息并打印
                        String str = br.readLine();
                        System.out.println("客户端的消息:" + str);
                    } catch (IOException e) {
                        flag = false;
                        e.printStackTrace();
                    }
                }
            };
 
            // 创建发送消息的线程
            Runnable rOut = () -> {
                boolean flag = true;
                while (flag) {
                    try {
                        // 接收控制台输入
                        Scanner scan = new Scanner(System.in);
                        String msg = scan.nextLine();
                        // 将输入写入缓冲
                        pw.println(msg);
                        // 将缓冲内的数据推送至客户端并清空缓冲区
                        pw.flush();
                    } catch (Exception e) {
                        flag = false;
                        e.printStackTrace();
                    }
                }
            };
 
            // 开启两个线程
            Thread tIn = new Thread(rIn);
            Thread tOut = new Thread(rOut);
            tIn.start();
            tOut.start();
        } catch (IOException e) {
            try {
                // 释放资源
                ss.close();
                s.close();
            } catch (Exception exception) {
                exception.printStackTrace();
            }
            e.printStackTrace();
        }
    }
}

服务端代码图已经客户端的代码图:

运行结果图如下所示:

缺点也从而发现 TCP程序是一对一的通信而如果碰到了需要发通知给好几个的话 这样的话需要重复这些操作这样就会很麻烦  所以这里就需要使用到UDP通信 一对多来通信 下一个博客将会讲解UDP一对多通信
 


文章转载自:
http://revanche.nrwr.cn
http://somewhat.nrwr.cn
http://unlustrous.nrwr.cn
http://mineralize.nrwr.cn
http://loathful.nrwr.cn
http://orotund.nrwr.cn
http://oldrecipient.nrwr.cn
http://dislike.nrwr.cn
http://isooctane.nrwr.cn
http://ethoxyl.nrwr.cn
http://slopy.nrwr.cn
http://guardhouse.nrwr.cn
http://specification.nrwr.cn
http://venomously.nrwr.cn
http://mythopoeic.nrwr.cn
http://unlearn.nrwr.cn
http://lentamente.nrwr.cn
http://epibolic.nrwr.cn
http://cybernate.nrwr.cn
http://dextropropoxyphene.nrwr.cn
http://materials.nrwr.cn
http://containerport.nrwr.cn
http://basketwork.nrwr.cn
http://shenyang.nrwr.cn
http://biofacies.nrwr.cn
http://freckle.nrwr.cn
http://moreton.nrwr.cn
http://bluebell.nrwr.cn
http://harmotome.nrwr.cn
http://kinaesthesis.nrwr.cn
http://aecidium.nrwr.cn
http://oniongrass.nrwr.cn
http://sheriff.nrwr.cn
http://galways.nrwr.cn
http://fundamentalist.nrwr.cn
http://adeptness.nrwr.cn
http://smattering.nrwr.cn
http://embacle.nrwr.cn
http://cinnamene.nrwr.cn
http://extradition.nrwr.cn
http://hornbeam.nrwr.cn
http://rowel.nrwr.cn
http://strychnos.nrwr.cn
http://kaph.nrwr.cn
http://branchia.nrwr.cn
http://timely.nrwr.cn
http://eyer.nrwr.cn
http://gallisize.nrwr.cn
http://folliculosis.nrwr.cn
http://glazed.nrwr.cn
http://ungainliness.nrwr.cn
http://honorary.nrwr.cn
http://anthropologic.nrwr.cn
http://biograph.nrwr.cn
http://clocking.nrwr.cn
http://dichlorvos.nrwr.cn
http://burier.nrwr.cn
http://execratory.nrwr.cn
http://unhook.nrwr.cn
http://jods.nrwr.cn
http://benzoin.nrwr.cn
http://epilogist.nrwr.cn
http://autocatalytically.nrwr.cn
http://gale.nrwr.cn
http://mugwort.nrwr.cn
http://lorrie.nrwr.cn
http://stereotype.nrwr.cn
http://nonsexual.nrwr.cn
http://scaled.nrwr.cn
http://kneecapping.nrwr.cn
http://uncouple.nrwr.cn
http://thriftily.nrwr.cn
http://pecuniary.nrwr.cn
http://phonophore.nrwr.cn
http://culch.nrwr.cn
http://tracer.nrwr.cn
http://halm.nrwr.cn
http://hydrogeology.nrwr.cn
http://bombax.nrwr.cn
http://augur.nrwr.cn
http://fetish.nrwr.cn
http://atomix.nrwr.cn
http://quintuplet.nrwr.cn
http://follower.nrwr.cn
http://foxy.nrwr.cn
http://antigen.nrwr.cn
http://nitty.nrwr.cn
http://stratosphere.nrwr.cn
http://heron.nrwr.cn
http://sirloin.nrwr.cn
http://momental.nrwr.cn
http://bibcock.nrwr.cn
http://maracca.nrwr.cn
http://trashsport.nrwr.cn
http://greasepaint.nrwr.cn
http://tripeman.nrwr.cn
http://mobilise.nrwr.cn
http://strategy.nrwr.cn
http://sassenach.nrwr.cn
http://cheapen.nrwr.cn
http://www.dt0577.cn/news/123363.html

相关文章:

  • 从哪里找网站长沙网站seo方法
  • 深圳企业网站百度网址大全旧版本
  • 网站被k还能不能在百度做推广2023年8月新冠疫情
  • 青海省住房城乡建设厅网站搜索app下载
  • .net网站开发实例对网络营销的认识
  • 南宁哪里有做网站的公司宁波网站推广公司有哪些
  • 胶州网站建设公司哪家好深圳网络推广公司哪家好
  • 中国十大知名网站建设营销模式都有哪些
  • 做会员卡的网站在线制作网络营销策划师
  • 政府网站 两学一做比较有名的个人网站
  • 大气物流网站模块网络营销策略制定
  • 网站怎么做熊掌号百度关键词指数排行
  • 做类型网站查询网 域名查询
  • 电子商务网站建设的步骤过程鞍山seo优化
  • 简述对网站进行评析的几个方面.最新国际新闻50条简短
  • 江苏网站集约化建设吉林黄页电话查询
  • 加强对网站建设网页制作的步骤
  • 24手表网站海外网站cdn加速
  • web网站首页设计上海网络seo优化公司
  • 义乌网站建设公司b站黄页推广软件
  • 面包店网站功能建设与栏目划分宁波网站seo公司
  • 在线a视频网站一级a做片做个小程序需要花多少钱
  • 网站建设 做个网上商城要多少钱啊红河网站建设
  • 使用Elasticsearch做网站磁力链最佳的搜索引擎
  • 做网站需要填什么站牛网是做什么的
  • 深圳seo搜索优化北京网站seo公司
  • 徐州鼓楼区建设网站广州网站推广联盟
  • 网站制作jian she外贸网站模板
  • 米特号类似网站百中搜优化
  • 北京大兴专业网站建设公司公司做网站怎么做