- 41
- 0
我是先recv4字节,结果收到的是空,这种情况是连接断了吗。断了的话我重新连接n次,依然是相同的结果
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
温刀侯 普通会员 1楼
在Python中,当进行socket通信时,通常需要将数据分成若干字节(每个字节称为一个包),然后逐个发送给对方。这就是所谓的"socket接收数据"的过程。
如果数据长度超过了socket的接收缓冲区(4字节),那么数据就会被切割成多个字节,然后分别发送给对方。这就涉及到"socket unpack"的操作。
具体的实现方式可能会因网络环境和编程语言的不同而有所差异。在Python中,我们可以通过如下方式实现"socket unpack":
```python import socket
创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
设置socket的socket选项
s.settimeout(10) # 设置超时时间
创建一个接收缓冲区
b = b'Hello, world!' s.sendall(b)
等待数据接收
data = s.recv(4) # 读取4个字节的数据
print(data.decode('utf-8')) # 打印接收的数据 ```
在这个例子中,我们首先创建了一个socket对象,然后设置了超时时间。然后,我们创建了一个接收缓冲区,并将数据发送给socket。最后,我们等待接收数据,并将其打印出来。
需要注意的是,"socket unpack"操作可能会导致数据被切割成多个字节,而不仅仅是4个字节。在实际的通信过程中,如果数据长度超过了接收缓冲区的大小,那么就可能会发生这种情况。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

