Linux TCP UDP

通过百度可以知道:

TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议。

TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送。

UDP则不为IP提供可靠性、流控或差错恢复功能。面向非连接的协议。

 

代码:

通常TCP的socket,我们用send、 recv来实现发送接收数据的。

 #include <sys/socket.h>
 ssize_t recv(int sockfd, void *buff, size_t nbytes, int flags);
 ssize_t send(int sockfd, const void *buff, size_t nbytes, int flags);

sockfd:指定发送端套接字描述符。 buff:    存放要发送数据的缓冲区 。 nbytes:  实际要改善的数据的字节数 。flags:   一般设置为0。

返回值:成功执行时,返回已发送或接收的字节数。失败返回-1,errno为错误码

如果recv函数在等待协议接收数据时网络断开了,那么调用 recv的进程会接收到一个SIGPIPE信号,进程对该信号的默认处理是进程终止。

 

通常UDP的socket,用sendto . recvfrom 

#include < sys/types.h >

#include < sys/socket.h >

int sendto ( socket s , const void * buf, int len, unsigned int flags, const struct sockaddr * to , int tolen ) ;

int recvfrom(int s,void *buf,int len,unsigned int flags ,struct sockaddr *from ,int *fromlen);

  • \s:              socket描述符。
  • \buf:         UDP数据报缓存地址。
  • \len:          UDP数据报长度。
  • \flags:       该参数一般为0。
  • \to(from):            sendto()函数参数,struct sockaddr_in类型,指明UDP数据发往哪里报(发到哪)。
  • \tolen:      对方地址长度,一般为:sizeof(struct sockaddr_in)。
  • \fromlen:recvfrom()函数参数,struct sockaddr_in类型,指明从哪里接收UDP数据

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux网络编程中的TCPUDP是两种常见的传输协议。 TCP(Transmission Control Protocol)是一种基于连接的可靠传输协议。它提供了面向连接、可靠的数据传输服务。在TCP通信中,数据被分割成小的数据块,通过TCP连接按序传输,并且保证数据的可靠性,即使在网络拥塞或数据丢失的情况下也能重新传输丢失的数据。TCP适用于对可靠性要求较高的应用程序,如文件传输、电子邮件和网页浏览。 UDP(User Datagram Protocol)是一种无连接的不可靠传输协议。它提供了一种无序、不可靠的数据传输服务。在UDP通信中,数据以数据包(也称为数据报)的形式发送,不进行连接建立和断开,也不保证数据的可靠性和按序传输。UDP适用于对实时性要求较高、对数据可靠性要求较低的应用程序,如音视频流媒体、在线游戏等。 在Linux中进行TCPUDP网络编程可以使用Socket API。该API提供了一组函数和数据结构,用于创建套接字(socket)、绑定(bind)套接字到特定的IP地址和端口、监听(listen)连接请求、接受(accept)连接、建立连接(connect)、发送(send)和接收(receive)数据等操作。 你可以使用C语言或其他支持Socket API的编程语言来进行Linux网络编程,通过调用Socket API提供的函数来实现TCPUDP通信。在编程过程中,你需要了解TCPUDP的特点、使用套接字创建相应的连接类型、发送和接收数据的方式等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值