TCPIP网络编程技术作业汇总

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TCP与UDP各自特点

TCP与UDP是网络层常用通信协议两者主要有以下特点:

TCP:

1.TCP是一种面向连接的、可靠的传输层协议;

2.进行拥塞控制,当前网络发生通信拥塞时,发送者降低发送的速率,以便接收方能够有效的对数据包进行接收,尽可能的避免了发生丢包现象。

3.具有数据流的特性,数据没有边界

4. 要提供可靠交付,具有差错控制功能,需要遵守三次握手协议,需要建立维持连接后,才能进行与通信方进行三次握手。

主要的应用有:HTTP超文本传输协议、FTP文件传输协议、Telnet远程连接协议、SMTP邮件传输协议

UDP:

1.UDP是面向无连接服务,不可靠的传输协议

2.传输数据之前源端和终端不建立连接,直接将要传送的数据包发送到网络上即可,简单方便,效率高。

3.没有流量控制,极有可能会在网络通信情况不好的时候发生丢包现象。

4.没有差错控制,不能确定数据包在传输过程中信息是否发生了改变,可靠性不高

主要应用:流媒体、视频会议、DNS数据包发送、Internet电话

详细说明简单UDP和TCP网络编程流程TCP流程图解:

对于TCP的网络编程,我认为主要分为如图所示:

对于tcp接连方式服务器来说的6个流程步骤:

1.程序初始化:启动SOCKET库,创建socket套接字,包括网络头文件的添加,网络编程初始化函数的调用。

2.填写本机地址信息:填写SOCKADDR_IN中能数据,设定对自身通信地址与端口号,调用bind()函数进行端口绑定。

3.监听绑定的固定的端口,调用listen()函数进行端口监听。

4.当通过accept()函数收到Client的连接请求后建立一个socket连接,或没有收到则继续监听,构成一个循环监听模块。

5.产生一个新的进程与Client进行通信和信息处理,通过receive()函数接收客户端发过来的信息并通过send()函数反馈处理后的信息。

6.子通信结束后中断与Client的连接,运用close()关闭套接字。

对于tcp连接方式的客户端程序来说可以分为4个流程步骤:

1. 启动SOCKET库,创建socket套接字,包括网络头文件的添加,网络编程初始化函数的调用。

2.先填写服务器地址信息并通过connect()函数发出与目标服务器的连接请求。

3.通过receive()与send()函数与服务器通信和信息处理。

4.调用close()函数在通信结束后断开连接。

UDP流程图解:

服务器的主要流程可以分为四个步骤:

1.程序初始化:启动SOCKET库,创建socket套接字,包括网络头文件的添加,网络编程初始化函数的调用。

2.填写本机地址信息:填写SOCKADDR_IN中能数据,设定对自身通信地址与端口号,调用bind()函数进行端口绑定。

3.当接收到客户端消息后产生一个新的进程与Client进行通信和信息处理,通过receivefrom()函数接收客户端发过来的信息并通过sendto()函数反馈处理后的信息。

4.子通信结束后中断与Client的连接,运用close()关闭套接字。

客户端主要流程可以分为三个步骤

1.启动SOCKET库,创建socket套接字,包括网络头文件的添加,网络编程初始化函数的调用。

2.通过receivefrom()与sendto()函数与服务器通信和信息处理。

4.调用close()函数在通信结束后断开连接。

总结:UDP服务器相对于TCP服务器来说大同小异,最主要的区别中UDP服务器不需要监听端口,客户端程序也无需像TCP一样需要经过三次握手协议建立连接。

Windows环境下与Linux环境下网络编程的区别

一、linux下的socket编程:

1、客户端执行步骤依次如下:

需要调用以下函数:

socket()

connect()

send()或者recv()

close()

注意的是,connect之前要填充地址结构体,IP地址转换为网络字节序,一般用inet_aton().

需要调用以下函数:

2、服务器端:

socket()

bind()

listen()

accpet()

recv()或者send()

close()

(ps:一般通过将send()和recv()的最后一个参数赋为0或者1来区分阻塞与非阻塞,其中0对应阻塞,1对应非阻塞)

二、windows下的网络编程:

做过windows网络编程的人都知道,微软的MFC把复杂的WinSock API函数封装到类里,这使得编写网络应用程序更容易。即windows既提供上层的网络API 函数也提供底层的API函数。

1、对于采用上层的API函数而言:若采用csocket类定义一个对象obj的话,那么进行网络编程的步骤如下:

客户端:

需要调用以下对象中的函数:

obj.Create()

obj.Connect()

obj.Receive()或者obj.Send()

obj.Close()

服务器端:

需要调用以下对象中的函数:

先调用AfxSocketInit()检测协议栈安装情况

obj.Create()

obj.Listen()

obj.Accpet()

obj.Receive()或者obj.Send()

obj.Close()

2、对于采用底层的API函数而言,也是是先加加入这个头文件后步骤如下:

客户端:

需要直接调用以下的函数:

WSAStartup()

socket()

相关文档
最新文档