Unity面试题整理(4)--Socket知识点扫盲

来源:互联网 发布:华为编程大赛题目 编辑:程序博客网 时间:2024/05/20 09:44
Socket构造
public Socket(AddressFamily addressFamily,SocketType socketType,ProtocolType protocolType); 
依次来看各个参数类型
AddressFamily:直译过来就是地址家族。地址大家族有很多种类,有ipv4,ipv6,app talk等等,他们都有对应的名字,比如ipv4对应的AddressFamily名字是InterNetwork,这个是最常用的,ipv6名字是InterNetworkV6。

SocketType:Socket的类型有Dgram,Raw,Rdm,Seqpacket,Stream,Unknown。这里只简单解释常见的几种。
     *Dgram
     特点
     分组可能无序到达
     分组可能丢失,丢失时无补救措施,接收方不知道丢失
     分组有尺寸大小限制
     发送前无需建立连接,可同时发给多个端
    
     *Stream
     特点
     不保留消息边界
     保证发送与接收的字节顺序一致
     保证接收的数据与发送的数据一致,如果有错误会自动进行修复,修复如果失败,会通知发送方和接收方
     发送前须建立连接,一对一传输
    
     啥叫消息边界?
     消息边界指的就是划分每次写入操作的数据的边界。如A向B发送消息,第一次写入20字节,紧接着第二次写入30字节。A进行了两次独立的写入操作,                             可能是将一个消息分成两次写操作,也可能是两个消息,而接受方B并不关心A执行了几次独立的写操作,而是把接收到的50字节作为整体来接收,而无法判断出第一次写入的20字节与第二次写入的30字节的边界在哪里,这就是Stream不保留边界的特点。

     *Seqpacket
      特点
      保留边界消息,这是与Stream不同的地方,比如第一次发送20字节,第二次发送30字节,那么接收方读取也是先读20字节,再读30字节
      保证发送与接收的字节顺序一致
      保证接收的数据与发送的数据一致,如果有错误会自动进行修复,修复如果失败,会通知发送方和接收方
      发送前须建立连接,一对一传输

  
ProtocolType:协议类型有很多,IP,IPv4,IPv6,Tcp,Udp,Http,这里只简单介绍这几种常见的。TCP/IP模型分为四层,应用层,运输层,网络层,链路层。每个层都有不同的协议,见下图(图片来自网络)。

我们最常接触的就是Tcp,Udp,Http。Http在web请求中应用广泛,而游戏中我们需要客户端与服务器之间需要双向通信,所以选择socket,使用Tcp协议。

Tcp协议是面向连接的,也就是进行数据通信前必须先建立连接。连接的过程需要“三次握手”。

客户端说:服务器,我的代号是j,请确认我的身份
服务器说:好的,已确认你的身份(返回j+1表示),我的代号是k,请确认我的身份
客户端说:好的,已确认你的身份(返回k+1表示)
连接建立,数据通信。
TCP常用Flag字段有:SYN(synchronous同步)   ACK(acknowledgement 确认) PSH(push传送)  FIN(finish结束)  RST(reset重置)  URG(urgent紧急)

TCP断开连接时,需要“四次握手”


主动关闭方:我要关闭了,代号m
被动关闭方:收到并确认代号(返回m+1)
                      那我也关闭了,代号n
主动关闭方:收到并确认代号(返回n+1)
(以上抛砖引玉一下,我们重点还是应用,具体细节可参考《TCP/IP详解》)

上升到应用层,梳理一下建立socket通信的步骤:
服务器:
1建立socket
2绑定服务器ip,要监听到端口
3Accept等待连接
4Accept收到连接请求后,通过客户端socket读取数据
5读取到数据后,解析,处理,整理响应数据
6通过客户端socket写入数据,该socket关闭,回到3

客户端:
1建立socket,绑定服务器地址,端口
2socket发起连接请求
3socket写入数据
4socket读取数据
5socket关闭

实践:一个剪刀石头布的小游戏
游戏逻辑:两个玩家连上服务器后,在10秒内需要选择手势,服务器收到两方手势后,产生结果,发送结果给游戏双方,并开始下轮游戏。
(待续)








0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 高三厌学家长该怎么办 考研团员档案丢了怎么办 学生的档案丢了怎么办 大四团员证丢了怎么办 2岁宝宝吸收不好怎么办 孩子逆反心理特强沟通不了怎么办 一年级孩子有逆反心里怎么办 如果一个学生会部门没人留怎么办 如果学生会部门很少人报名怎么办 职场说错话了我该怎么办? 中考通知书收到两份怎么办 高三学生英语差怎么办 论文查重百分之0怎么办 微信红包发错人了怎么办 文学社在社团活动日可以怎么办 小孩玩游戏瞎花钱怎么办 党员不配合纪检调查工作怎么办 新同事老问问题怎么办 白色衣服染红色了怎么办 左腿膝盖内侧疼怎么办 差二本线几分怎么办 吃错东西了想吐怎么办 玩游戏扣的话费怎么办 转笔实在是不会怎么办 滑板l轴承沾水了怎么办 暗影格斗3闪退怎么办 暗影格斗3文档被删怎么办 dnf手残党偷学技能学不了怎么办 打篮球没热身膝盖酸痛是怎么办 无线路由器lan口少怎么办? 电脑ip设置乱了怎么办 监控拍我我偷钱怎么办 网吧上网密码忘记了怎么办 比熊犬晚上叫怎么办 刚买的狗一直叫怎么办 酒驾罚款2年没交怎么办 法院判罚款没有钱怎么办 有人朝你吐口水怎么办 孕妇用了六神花露水怎么办 出车祸人不赔钱怎么办 交通事故对方保险不签字怎么办