网络通讯TCP和UDP的编程流程

本文介绍了TCP和UDP的编程流程。TCP是面向连接、可靠传输、流式服务的协议,而UDP则是无连接、不可靠、数据报服务。在TCP编程中,服务器端包括socket、bind、listen、accept、recv/send、close等步骤,客户端则省略了bind和listen,直接进行connect、recv/send、close。UDP编程流程中,服务器和客户端都包括socket、bind、recvfrom/sendto、close,且无需建立连接。
摘要由CSDN通过智能技术生成

        我们介绍过进程间通讯的方式有:管道、信号量、共享内存、消息队列,但这些通讯方式都是在本地上通讯的,那么在现实生活中还有一种通信方式,不同主机上的两个进程之间的通讯,是通过socket套接字来完成的。

        比如,生活中聊天软件QQ,你和好友之间的聊天,就是网络通讯。你是客户端,好友也是客户端,那么你们之间能够通讯是因为中间还有个服务器在工作。

    服务器:提供数据的为服务器

    客户端:获取数据的为客户端


       在计算机中要做到有条不紊的交换数据,就必须遵守一些实现约定好的规则。这些规则明确规定了所交换的数据的格式以及有关的同步问题。

      所以我们有了网络协议,网络协议有TCP/IP   UDP/IP

      协议的选择:    TCP 的特点:     面向连接     可靠传输     流式服务

                                UDP的特点:      无连接         不可靠         数据报服务  


这里我们主要说说TCP和UDP的编程流程

TCP的编程流程:

            server(服务器):     socket       bind           listen         accept        recv/send       close

            client (客户端):      socket      /*bind*/         connect              recv/send       close


1、服务器端:

         (1)创建socket

              socket ,在linux下一切都是文件,socket就是可读、可写、可控制、可关闭的文件描述符。

                #include<sys/types.h>

                #include<sys/socket.h>

                int socket(int domain,    int type,     int protocol)

               domain 参数:系统使用的是哪个底层协议族。TCP/IP协议族,参数设置为PF_INET

                                                                                   UNIX本地域   ,参数设置为PF_UNIX


               type参数:指定服务类型  ,服务类型就是流服务或者数据报服务,TCP协议使用流服务SOCK_STREAM,

                              UDP使用数据报服务SOCK_DGRAM.

               protocol参数:是在前面爱那个参数构成的协议下,再选择一个具体的协议。我们一般设置为0,表示使用默  认协议。

                函数成功返回一个socket文件描述符,失败返回-1.

       

(2)bind (绑定)

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值