免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1250 | 回复: 13
打印 上一主题 下一主题

请各位高手帮忙看看!socket问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-08-18 14:50 |只看该作者 |倒序浏览
为什么我的客户端为什么连不上服务器端.
每次运行都提示:connect error
  1. #include<stdio.h>;
  2. #include<string.h>;
  3. #include<sys/types.h>;
  4. #include<unistd.h>;
  5. #include<sys/socket.h>;
  6. #include<netinet/in.h>;
  7. #include<arpa/inet.h>;
  8. #include<netdb.h>;

  9. int main(void)
  10. {
  11. int s;
  12. char buf[8];
  13. struct sockaddr_in svr;

  14. if((s=socket(AF_INET,SOCK_STREAM,0))<0)
  15. {
  16. printf("socket error\n");
  17. exit(-1);
  18. }

  19. memset(&svr,0,sizeof(struct sockaddr_in *));

  20. svr.sin_family=AF_INET;
  21. svr.sin_port=htonl(1234);
  22. svr.sin_addr.s_addr=inet_addr("127.0.0.1");

  23. if(connect(s,(struct sockaddr_in *)&svr,sizeof(struct sockaddr_in *))<0)
  24. {
  25. printf("connect error\n");
  26. exit(-1);
  27. }

  28. if(read(s,buf,sizeof(buf))<1)
  29. {
  30. printf("error\n");
  31. exit(-1);
  32. }

  33. write(1,buf,strlen(buf));
  34. close(s);
  35. exit(0);
  36. }
复制代码

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2004-08-18 14:55 |只看该作者

请各位高手帮忙看看!socket问题

你用 telnet 127.0.0.1 1234 试一下!
如果不行,就是你的服务器的问题了。

论坛徽章:
0
3 [报告]
发表于 2004-08-18 16:24 |只看该作者

请各位高手帮忙看看!socket问题

忘记说明了.
我这个程序是在单机里测试的.

论坛徽章:
0
4 [报告]
发表于 2004-08-18 16:25 |只看该作者

请各位高手帮忙看看!socket问题

将connect(s,(struct sockaddr_in *)&svr,sizeof(struct sockaddr_in *)) 改为connect(s,(struct sockaddr*)&svr,sizeof(struct sockaddr_in *))
试试看

论坛徽章:
0
5 [报告]
发表于 2004-08-18 16:42 |只看该作者

请各位高手帮忙看看!socket问题

试了,hongbupt 老兄,我把服务器端的也改成这样了,还是一样的.

论坛徽章:
0
6 [报告]
发表于 2004-08-18 17:09 |只看该作者

请各位高手帮忙看看!socket问题

if(connect(s,(struct sockaddr_in *)&svr,sizeof(struct sockaddr_in *))<0)

>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;

if(connect(s,(struct sockaddr *)&svr,sizeof(struct sockaddr_in))<0)

论坛徽章:
0
7 [报告]
发表于 2004-08-18 17:20 |只看该作者

请各位高手帮忙看看!socket问题

结果还是不行啊!

论坛徽章:
0
8 [报告]
发表于 2004-08-18 17:30 |只看该作者

请各位高手帮忙看看!socket问题

svr.sin_port=htonl(1234); ??

>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;

svr.sin_port=htons(1234);

论坛徽章:
0
9 [报告]
发表于 2004-08-19 08:23 |只看该作者

请各位高手帮忙看看!socket问题

楼上的已经说出问题了

论坛徽章:
0
10 [报告]
发表于 2004-08-19 09:47 |只看该作者

请各位高手帮忙看看!socket问题

请各位再帮忙看看服务端程序.
  1. int main(void)
  2. {
  3. int s,news;
  4. struct sockaddr_in svr,cli;


  5. if((s=socket(AF_INET,SOCK_STREAM,0))<0)
  6. {
  7. printf("socket error\n");
  8. exit(-1);
  9. }


  10. memset(&svr,0,sizeof(struct sockaddr_in *));

  11. svr.sin_family=AF_INET;
  12. svr.sin_port=htons(1234);
  13. svr.sin_addr.s_addr=inet_addr("127.0.0.1");


  14. if(bind(s,(struct sockaddr_in *)&svr,sizeof(struct sockaddr))<0)
  15. {
  16. printf("bind error\n");
  17. exit(-1);
  18. }


  19. if(listen(s,5)<0)
  20. {
  21. printf("listen error\n");
  22. exit(-1);
  23. }


  24. while(1)
  25. {
  26. if((news=accept(s,(struct sockaddr *)&cli,sizeof(struct sockaddr)))<0)
  27. /*{
  28. printf("accept error\n");            /*如果我不把这两行注视掉,运行就会
  29. exit(-1);                                         显示accept error,如果注了,      
  30. }*/                                                  客户端还是无法收到"hello"      
  31. continue;
  32. if(fork()==0)
  33. {
  34.    write(news,"hello",5);
  35. close(s);
  36. }
  37. }

  38. exit(0);
  39. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP