| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> TCP网络编程 -> 正文阅读 |
|
[网络协议]TCP网络编程 |
一、网络编程基本概念1. 什么是计算机网络
6.网络 编程程序的分类: 1.B/S 程序 : 浏览器与服务器程序 7.TCP协议 - OSI网络模型 指的是 从一台计算机的软件中, 将数据发送到另一台计算机的软件中的过程.
第一次握手:客户端向服务器端发起连接请求,等待服务器确认。 第二次握手:服务器端向客户端回送一个响应,通知客户端收到了连接请求。 第三次握手:客户端再次向服务器端发送确认信息,确认连接。 第一次挥手:客户端向服务器发送断开请求。 第二次挥手:服务器收到请求后,向客户端回一个应答,接着服务器进入等待关闭状态,TCP处于半关闭状态。 第三次挥手:服务器也打算断开连接,向客户端发送报文。 第四次挥手:客户端收到报文后,回复一个响应。双方关闭。 二、TCP程序需要用到两个类来编写TCP的cs程序 1、ServerSocket 搭建服务器 2、Socket 搭建客户端 ServerSocket用来搭建服务器,搭建完毕后,会绑定一个端口号。 然后此服务器可以等待客户端连接。 每连接一个客户端,服务器就会得到一个新的Socket对象,用于跟客户通信。 Socket是两台计算机之间通信的端点。一边持有一个socket对象,来沟通。socket像电话的作用。 下面我们来演示一下服务器与客户端连接的全过程,注:用两个类来通信,一个搭建服务器,一个搭建客户端。 第一步,我们先来搭建服务器:起端口号为:10086
第二步:用accept来接收客户端的连接,并且将链接好的端口起名为socket
第三步:创建一个客户端:
端口中的参数是IP地址和端口号。本机IP地址为127.0.0.1或localhost。端口号就是服务器的端口号。 这样运行两个类,我们的服务器和客户端就连接成功了。 下面我们进行一些简单的通信。通信都是用socket来进行通信的。用输入输出流来进行交流。 服务器端发消息:?
客户端收消息: InputStreamReader将字节流转换为字符流,BufferedReader从字符流中缓存字符。
?客户端的发消息,服务器的收消息的方法都同上。 注:必须有一端发,一端收,不能两端同时都发。 整体的代码如下:代码示例: 服务器端:
客户端:
运行结果: 执行完服务器端,服务器端等待客户端连接。? 再运行客户端:客户端代码结果 ?服务器端结果:整个结束。 ?三、服务器中加入多线程上面的方法,我们一个服务器可以连接多个客户端,但是只能按顺序执行,处理完第一个客户端的事情后,才能处理第二个客户端。效率太低,服务器不可能一次只处理一个客户端的事情。所以我们需要加入多线程技术。多线程技术连接: 循环接收客户端,在接收客户端后面,加入多线程。每接收一个客户端,就进入一个新的线程中。各线程完成各线程的事情。? 请阅读源码:
于是我们在客户端不断连接。 运行结果如下:多线程一起运行。一个服务器连接多个客户端,并同时处理。 ? ? 本文到这里,关于TCP网络编程的方法就全部介绍完毕了。 作者码字不易,您的点赞收藏是对我的鼓励~ |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:39:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |