一个非常简单的问题 可我不会 各位帮帮忙

buhuibba 2004-04-21 10:46:38
char h[40]="192.168.1.36";
srv.sin_addr.s_addr=inet_addr(h);
srv.sin_family=AF_INET;
srv.sin_port=5000;
cli=socket(AF_INET,SOCK_STREAM,0);
int ee=1;

int s=connect(cli,(sockaddr*)&(srv),sizeof(srv));
if(s==1)
{
messageBox("连接成功");
UpdateData(false);}
else
{
MessageBox("无法连接");
UpdateData(false);}

}

总是失败 我哪里做了
...全文
142 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
milefo 2004-04-21
  • 打赏
  • 举报
回复
一定通信软件都把D_OK定义成0,D_NG定义为-1.
EternalBlue 2004-04-21
  • 打赏
  • 举报
回复
。。。。。
connect成功返回0,失败返回-1。
hatecoding 2004-04-21
  • 打赏
  • 举报
回复
connect连接成功返回0
你用 if(s==1) 判断肯定不行


runall 2004-04-21
  • 打赏
  • 举报
回复
5000这个端口打开了吗
buhuibba 2004-04-21
  • 打赏
  • 举报
回复
我的服务器段是用c#做的
是不是这个原因不能连?
buhuibba 2004-04-21
  • 打赏
  • 举报
回复
谢谢众位
made_in_ 2004-04-21
  • 打赏
  • 举报
回复
哦,你处理返回值有错误。
connect()函数在成功之后,是返回0,并非是1。
int s=connect(cli,(sockaddr*)&(srv),sizeof(srv));
if(s==1)//改成if(s==0)
{
messageBox("连接成功");
UpdateData(false);}
made_in_ 2004-04-21
  • 打赏
  • 举报
回复
你这应该是客户端的吧。
在你用客户端连接之前,服务器上应该先运行服务器端。server完成的工作应该包括:bind到端口,并进行listen。你的服务器程序bind到5000端口了没有?是否在正常监听呢?

64,661

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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