关于socket中的recv()疑问

kenzhenzha1570 2017-04-21 12:35:32
在socket通讯中,我设定了服务端一直发送‘OK’,在客户端中data = tcpCliSock.recv(bufsize),然而程序就卡住了,上网查了查,应该是recv()进入阻塞了。上网又查了查关于recv()的阻塞与非阻塞,现在有两点问题不是很懂:1、在socket通讯中,一定要按照先发送,再接收的模式吗?不能直接接收吗?2、我尝试用了.setblocking(0)改成非阻塞性recv(),则显示[WinError 10035] 无法立即完成一个非阻止性套接字操作。本人小白,求懂得大神指点指点
...全文
379 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2017-04-21
  • 打赏
  • 举报
回复
引用 2 楼 kenzhenzha1570 的回复:
引用 1 楼 cfjtaishan 的回复:
卡住是阻塞导致的,应该是对端发来的数据没有接收到,或者服务器没有发送成功吧。
但是我在服务端设置了一直发送‘OK’的,不会没有收到吧?https://www.oschina.net/question/3396739_2239211 代码在链接
你首先先要确定服务器是否发送成功?
kenzhenzha1570 2017-04-21
  • 打赏
  • 举报
回复
引用 1 楼 cfjtaishan 的回复:
卡住是阻塞导致的,应该是对端发来的数据没有接收到,或者服务器没有发送成功吧。
但是我在服务端设置了一直发送‘OK’的,不会没有收到吧?https://www.oschina.net/question/3396739_2239211 代码在链接
自信男孩 2017-04-21
  • 打赏
  • 举报
回复
卡住是阻塞导致的,应该是对端发来的数据没有接收到,或者服务器没有发送成功吧。

4,358

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧