Socket编程

1.Socket编程方式

Socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开Open->读写write/read->关闭close”模式来操作文件。Socket就是该模式的一个实现,Socket即是一种特殊的文件,一些Socket函数就是对其进行操作(读写IO、打开、关闭)。因此Socket也提供了类似于连接Connect、关闭连接Close、发送、接收等方法的调用

2.数据传输方式

常用stream和dgram

  1. STREAM表示面向连接的数据传输方式,数据可以准确无误地到达另一台计算机,如果丢失或损坏,可以重新发送,但是相对效率低
  2. DGRAM表示无连接的数据传输方式,计算机只管数据传输,不做数据校验,DGRAM所做的校验工作少,所以效率比STREAM高

QQ视频聊天和语音聊天使用的就是DGRAM传输数据,因为首先需要保证通信的效率,尽量减少延迟,而数据的正确性是次要的,即使丢失很小的一部分数据视频和音频也可以正常解析,最多出现噪点或杂音,不会对通信质量有实质影响

3.服务器编写步骤

  1. 调用socket()函数创建一个用于通信的套接字
    买了个手机
  2. 给已经创建的套接字绑定一个端口号,一般通过设置网络套接口地址和调用bind()函数来实现
    办张手机卡,插上手机卡
  3. 调用listen()函数使套接字成为一个监听套接字
    等待来电
  4. 调用accept()函数来接受客户端的连接,这时就可以和客户端通信
    接听到了打来的电话
  5. 处理客户端的连接请求
    接通电话听、说沟通
  6. 终止连接
    挂断电话

4.客户端编写步骤

  1. 调用socket()函数创建一个用于通信的套接字
    买了个手机
  2. 通过设置套接字地址结构,说明客户端与之通信的服务器的IP地址和端口号
    输入对方手机号
  3. 调用Connect()函数来建立与服务器的连接
    拨号,并等接听
  4. 调用读写函数发送或接收数据
    说话、听话
  5. 终止连接
    挂断电话
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值