当前课程知识点:互联网体系结构 >  第二周:Socket网络编程 >  TCP范例代码 >  Video

返回《互联网体系结构》慕课在线视频课程列表

Video在线视频

Video

下一节:外部链接

返回《互联网体系结构》慕课在线视频列表

Video课程教案、知识点、字幕

TCP的server和client

就是我们可以在这儿

也看一下简单看一下它的代码

TCP的要比UDP要复杂得多

我们来看一下这地方

那我们解释就是套接字描述符

我们定义了两个套接字描述符的这玩意儿还有

客户端的地址

结构体与变量

我们这地方就是

就是服务端的

同样我给他声明了他的地址族他的地址

他的端口号是吧

然后那是用

就是创建socket

那就他在这儿就是第二个参数

就是sock stream 是面向连接的

TCP协议爱我们创建了socket

把你bind my addr和这个套接字描述符绑定起来

这样呢就是内核

那就知道我在哪一个地址和对应的端口上监听

恩然后listen对吧

listen就是我监听哪一个就开始被动监听了

就是开始监听刚刚那只是绑定的吧

然后呢

这边那就是accept

当有客户连接请求来的时候

他就

那么

这个套接字描述符上接收到一个客户

同时

那我还把这个客户的地址端口号的信息给他就是接收过来

这样那我们接收过来之后叫

我们可以把他地址打印出来

当然我们也可以把它端口号打印出来了

我们这儿没有打印

然后呢

我们就给他发送一个消息对吧

给这个客户端client发送一个消息

给他发送消息

然后那就等待在这等待接收者客户端的消息

在这儿等待等待着消息

我们就一接收到他的消息

我们就打印出来

然后呢

我们在给他发送一个

消息再给他回送对应的消息

那我们再来看一下TCP的客户端哈

其实这个客户端的

他是这样

他也是我要就是要先定义和初始化了

这个服务器的就是

也就属于

也就是客户端要连接谁

你要先先定义好的吧

就像我们写信的时候

信封上收信人的地址对吧

你要先写

先写好吧

这个是和UDP是差不多的

我们这边创建socket

这时候那是一个

创建

然后那我这地方不一样了

TCP的客户端是用

也就是服务器的地址和端口号

就这时

那就是背后就是有个三次握手的过程

这后面我们讲TCP协议的时候

我们会仔细的来研究的

然后呢

这地方

当我连接成功了

连接建立了第一个TCP连接了

那么我就在这儿等着接收服务器的消息

接入服务器的消息接到服务器的消息

那我就把这些消息打印出来

然后呢

我这在这儿有一个while

循环这个循环

那就是

就是我发送消息发送一个就是我在输入scanf的吧

我在

键盘输入一个消息

我就发出去对吧

发出去就是当就是

然后呢

在等着服务器返回这个消息,一旦检测到我输入了

检测到quit

这个跳出这个循环就把这个连接关闭掉

这个代码呢

也不相信这个范例非常简单

我们来看一下这个程序啊

我们先来

我们就是刚刚定义好了对吧

我们先来这个看一下这个tcp server

打开

打开那时候

阻塞在哪儿

我们再来看

接到这个连接请求的那时候都可以回

直接发送给他一个消息

我们接到了

然后呢客户端了

就在那等着键盘输入

你说

那键盘那个服务器端的就会收到

对吧平常的输出

然后再回送回来

再在直接把他的数据

然后

告诉他

我收到了一嗨

那对方也是

我quit就直接退出了程序

退出程序

退出程序呢

这时

他的close

close服务器

这地方也close

是吧

服务器也close

只是我们这地方设计是怎么设计的

它只是这个服务器

那只服务一个客户端的吧

服务一个客户端也就是当这个while receive的时候

这个TCP链接已经被close掉了

那么这地方的返回

但就会

它会返回一个错误

但也就退出了这个他就close

server也退出了

但是正常的我们一个就是server程序

他应该是还有一个大循环

还有一个大循环

他在这儿就是当这一个客户端退出的时候

我还可以accept

其它的客户端请求

他就是始终在那儿等着接收客户端的连接请求

然后接到一个客户端的连接请求呢

他就专门创建一个线程

或者是使用某种方式

或者是就是IO复用的方式来不停的来处理这个所有的客户端的请求

所以这个那我们这个范例呢

还是比较简单

互联网体系结构课程列表:

第一周:互联网概述

-课程内容简介

--Video

-网络协议基础

--Video

--Video

--Video

--Video

-上网浏览网页背后的网络通信过程

--Video

--Video

-实验环境安装配置

--Video

-网络相关命令

--Video

--Video

-本周作业

--外部链接

第二周:Socket网络编程

-编译、构建和调试

--Video

--Video

--Video

-Socket接口

--Video

--Video

-UDP范例代码

--Video

-TCP范例代码

--Video

-本周作业

--外部链接

第三周:TCP协议与Linux内核

-TCP协议概述

--Video

--Video

-Linux网络协议栈源代码简介

--Video

-Linux系统的编译、构建和调试

--Video

--Video

-TCP协议源代码分析

--Video

-本周作业

--外部链接

第四周:IP协议及路由表

-IP协议基础

--Video

-路由表

--Video

-路由转发举例

--Video

-IP协议栈源代码解析

--Video

-路由协议简介

--Video

-网络层数据传输路径解析

--Video

-本周作业

--外部链接

第五周:ARP协议及ARP缓存

-ARP协议基础

--Video

-ARP解析的过程

--Video

-ARP解析在网络传输过程中的作用

--Video

-ARP协议栈源代码解析

--Video

-本周作业

--外部链接

第六周:二层交换网络及转发过滤数据库

-以太网基础

--Video

--Video

-交换机的学习、转发和过滤数据库

--Video

-常见二层协议

--Video

-数据链路层在Linux网络协议栈中的一些关键代码分析

--Video

-本周作业

--外部链接

第七周:DNS协议及域名存储与解析

-DNS协议基础

--Video

-DNS域名的存储

--Video

-DNS域名解析过程分析

--Video

-本周作业

--外部链接

第八周:互联网架构设计背后的渊源

-互联网架构设计的最初动机与核心目标

--Video

-互联网架构设计的具体目标及背后重要权衡

--Video

--Video

--Video

-课程考核

--外部链接

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。