Socket使用方式总结
来源:互联网 发布:回收站误删恢复软件 编辑:程序博客网 时间:2024/06/08 02:03
Socket使用方式总结
Socket的连接建立
服务器端:
1. 监听 bind()
listen()
2.有客户端连接,需要把客户端的连接接受
accept()
BeginAccept()
客户端:
1. Socket.connect (同步方式)
连接成功,成功后执行connect方法的下一条
连接失败:抛出异常,我们捕获异常
2. Socket.BeginConnect(异步方式)
socket.EndConnect(ar)
通过捕获endConnect的错误,连接失败
否则连接成功
3. 同步和异步的区别:
socket.connected 为true连接成功,为false和服务器连接断开,
Socket错误检测及关闭
现象:
1.客户端连接上,马上断开的情况下,服务器马上会检测到EndReceive()的报错。
2.客户端连接上,给服务器发过数据,再断开的情况下,服务器不会检测到EndReceive ()的报错,而是收到的字节数为小于等于0.
2.1客户端在调试模式下直接把调试模式关掉而不执行socket.close方法,服务器不会立即知道客户端关闭了,应该在OnApplicationQuit中执行
socket.shutDown()和socket.Close();
2.2客户端在发布出来的情况下把窗口关闭,而不执行socket.close方法,服务器立刻知道客户端关闭了,原因可能是正式模式下,关闭游戏窗口
会os会执行清理操作,相当于执行了socket.close方法一样,从而立即通知了服务器客户端已关闭。
服务器通过以上两种方式(endReceive方法报错,和收到的数据字节数小于等于0)检测到和客户端的连接失去。
注意以下限制:
unity3D中所有API,只能在主线程(start update awake.....)中调用。
- Socket使用方式总结
- SOCKET 使用线程方式
- 使用socket方式连接nginx
- 总结使用Get、Post、Socket三种方式连接服务端与传输数据的步骤
- Linux Raw Socket使用总结
- Linux netlink socket使用总结
- 使用epoll&socket的总结
- Windows Socket的使用 总结
- 关于socket 使用实战总结
- freeMaker使用方式总结
- Disksim使用方式总结
- 使用非阻塞方式的Socket通信
- AngularJS Socket.IO 另一种使用方式
- Socket 使用select()非阻塞方式实现
- libcurl异步方式使用总结
- Cocos2d-x中使用Socket方法总结
- Linux下的packet socket使用总结
- Cocos2d-x中使用Socket方法总结
- 常用排序算法总结
- 补充的
- nodejs+express搭建自己的服务框架
- angularJS添加表格,通过过滤器查找
- 浅谈堆和栈的区别
- Socket使用方式总结
- java 的类
- 【LeetCode】566. Reshape the Matrix
- 音乐播放
- java集合中用foreach快速遍历以及通过迭代的删除
- Attempt to invoke directory as script 的解决方法
- Android UsageStatsManager的使用
- HDOJ2083 简易版之最短距离
- 音乐分类