一个关于socket,tcp/ip连接的顺序问题

sam_jiang 2009-08-10 06:06:19
做了一个示例程序,现在问题是,必须是server端先开启,然后client端开启,这样才能正常的通讯,传输数据,

因为要求数据传输的准确性,所以还是用tcp/ip协议,让它无论哪一端先开启都能顺利通讯。
即:
如果server先开启等待client端的开启。
如果client先开启就等待直到server端开启。


请搞过的给个方法。用什么条件来控制呢?
...全文
104 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jason176374 2009-08-11
  • 打赏
  • 举报
回复
connect函数有返回值,判断一下就可以了。
lqscool 2009-08-11
  • 打赏
  • 举报
回复
先开了服务器才能开客户端吧,先开客户端能运行吗?
AIRFLYNET 2009-08-11
  • 打赏
  • 举报
回复
线程,SOCKET有连接状态
yekoufeng 2009-08-11
  • 打赏
  • 举报
回复
每各一分钟就尝试的连一次
wehile(1)
{
int rv = connect();
if(rv ==1)
break;
sleep(1000*60);
}

huliang66 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sam_jiang 的回复:]
引用 1 楼 jason176374 的回复:
如果server先开启等待client端的开启: 本身就是就这样,SERVER端LISTEN等待。
如果client先开启就等待直到server端开启:这个可以在CLIENT端加一个循环处理,连接不到就等待一段时间然后重新连接。

不知道是不是这个意思?


是这个意思,但是用什么条件来控制循环呢,这个是关键
[/Quote]

每各一分钟就尝试的连一次
wehile(1)
{
connect();
sleep(1000*60);
}
sam_jiang 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 arpnet99 的回复:]
引用 2 楼 sam_jiang 的回复:
引用 1 楼 jason176374 的回复:
如果server先开启等待client端的开启: 本身就是就这样,SERVER端LISTEN等待。
如果client先开启就等待直到server端开启:这个可以在CLIENT端加一个循环处理,连接不到就等待一段时间然后重新连接。

不知道是不是这个意思?


是这个意思,但是用什么条件来控制循环呢,这个是关键

开启根线程,在线程中使用while循环
或者使用模型
[/Quote]


我现在尝试的就是这样,但是while循环用什么做条件,说白了,就是说有没有相应的函数的返回值。用socket的connect函数好像不行。
arong1234 2009-08-10
  • 打赏
  • 举报
回复
没连上就循环啊?加一个定时器啊?这个“控制循环”的条件有什么难的?
[Quote=引用 2 楼 sam_jiang 的回复:]
引用 1 楼 jason176374 的回复:
如果server先开启等待client端的开启: 本身就是就这样,SERVER端LISTEN等待。
如果client先开启就等待直到server端开启:这个可以在CLIENT端加一个循环处理,连接不到就等待一段时间然后重新连接。

不知道是不是这个意思?


是这个意思,但是用什么条件来控制循环呢,这个是关键
[/Quote]
这不是鸭头 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sam_jiang 的回复:]
引用 1 楼 jason176374 的回复:
如果server先开启等待client端的开启: 本身就是就这样,SERVER端LISTEN等待。
如果client先开启就等待直到server端开启:这个可以在CLIENT端加一个循环处理,连接不到就等待一段时间然后重新连接。

不知道是不是这个意思?


是这个意思,但是用什么条件来控制循环呢,这个是关键
[/Quote]
开启根线程,在线程中使用while循环
或者使用模型
sam_jiang 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jason176374 的回复:]
如果server先开启等待client端的开启: 本身就是就这样,SERVER端LISTEN等待。
如果client先开启就等待直到server端开启:这个可以在CLIENT端加一个循环处理,连接不到就等待一段时间然后重新连接。

不知道是不是这个意思?
[/Quote]

是这个意思,但是用什么条件来控制循环呢,这个是关键
jason176374 2009-08-10
  • 打赏
  • 举报
回复
如果server先开启等待client端的开启: 本身就是就这样,SERVER端LISTEN等待。
如果client先开启就等待直到server端开启:这个可以在CLIENT端加一个循环处理,连接不到就等待一段时间然后重新连接。

不知道是不是这个意思?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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