LINUX网络编程

1.网络编程概述

地址IP地址
 端口号

 

 

 

 

一台拥有IP地址的主机可以提供多种服务,如Web服务,FTP服务,SMTP服务等,

主机如何区分不同的网络服务:通过“IP地址+端口号”来区分

端口提供了一种访问通道

服务器一般都是通过知名端口号来识别的。

TCP/UDP

1.TCP是面向连接的,UDP是无连接的(发送数据前不需要建立连接)。

2.TCP提供可靠的服务,通过TCP发送的数据,无差错,不丢失,无重复,且按序到达;

UDP尽最大努力交付,即不保证可靠交付。

3.TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP面向报文,UDP没有拥塞控制,因此网路出现拥塞,不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议)

4.每一条TCP连接只能是点到点的,UDP支持一对一,一对多,多对一,多对多的交互通信

5.TCP首部开销20字节,UDP首部开销小,只有8字节

6.TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

2.字节序

字节序,即字节在电脑中存放时的序列与输入(输出)时的序列是先到的在前还是后到的在前。

1. Little endian:将低序字节存储在起始地址

2. Big endian:将高序字节存储在起始地址

Little endian(小端字节序)

Big endian(大端字节序)

网络字节序=大端字节序

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzUyNjIxNTUx,size_16,color_FFFFFF,t_70

3.socket编程步骤

6dca20f43c890f6f547f2b7abd122b58.png

 

socket服务器和客户端开发步骤

TCPserver

1.创建套接字                                                                 socket()

2.为套接字添加信息(IP地址和端口号)                       bind()

3.监听网络连接                                                               listen()

4.监听到有客户端接入,接受一个连接                           accept()

5.数据交互                                                                      read()write()

6.关闭套接字,断开连接                                                 close()

TCPclient

1.socket()

2.connect()

3.write()read()

4.close()

地址转换API

int   inet_aton(const char* straddr,struct in_addr *addrp);

把字符串格式的“192.168.1.123”转换为网络能识别的格式

char* inet_ntoa(struct   in_addr  inaddr);

把网络格式的IP地址转为字符串形式

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牵猫散步的鱼儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值