如何重用sock?服务器和客户端一但连接上就不再新开sock。

66i88 2021-01-09 09:02:40
利用现有sock反复send和recv

xx
...全文
250 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xian_wwq 2021-03-11
  • 打赏
  • 举报
回复
socket只要没有关闭就可以收发多次,
如果断开了,重新new一个就可以了,不用纠结复用的问题。
美丽海洋 2021-02-05
  • 打赏
  • 举报
回复
楼主要表达意思 应该是客户端退出 但是这个socket还保存,假如这个客户端再链接进来 还是用这个客户端?



假如这样的话 服务端一旦接受客户端链接自动生成socket,就会把socket变换;楼主可以把新连接的socket赋值给原来的socket的试试
gz_qmc 2021-01-13
  • 打赏
  • 举报
回复
//客户端
while(没有死)
{
if(连接)
{
if(Send==SUCCESS)
{
if(recv==SUCCESS)
{
if(数据合理)
{
解析数据
}
else
{
if(有重新连接的信息或必要)
{
连接=FALSE;
}
}
}
else
{
连接=FALSE;
}
}
else
{
连接=FALSE;
}
}
else
{
if(socket存在) 清除Socket;
新建socket
if(socket==SUCCESS)
{
连接=connect;
}
}
}
//服务器端
setsockopt(SO_REUSERADDR);
while(没有死)
{
if(连接)
{
if(Recv==SUCCESS)
{
if(接收到分手指令)
{
连接=FALSE;
}
else
{
根据接收组织数据
if(Send!=SUCCESS)
{
连接=FALSE;
}
}
}
else
{
连接=FALSE;
}
}
else
{
if(socket==SUCCESS)
{
连接=connect;
}
}
}
an_bachelor 2021-01-13
  • 打赏
  • 举报
回复
没有说清楚问题,一个socket本就可以多次send recv 只要你的socket没关闭 网络本身正常
Eleven 2021-01-11
  • 打赏
  • 举报
回复
setsockopt(SO_REUSERADDR) ??
zgl7903 2021-01-09
  • 打赏
  • 举报
回复
socket connect while(! bExit) { send recv } closesocket ??

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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