免费注册 查看新帖 |

Chinaunix

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

请教版主unix c socket与delphi7的indy socket通信问题??? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-14 17:55 |只看该作者 |倒序浏览
最近我用delphi 7的indy socket server写了个socket server ,然后在sun solaris下用标准C
写了个socket client,测试发现能够连接成功,但客户端发包给server端却没有接收到?是不是unix下
与delphi 7 indy socket server端不能通信???

论坛徽章:
0
2 [报告]
发表于 2006-08-14 18:02 |只看该作者
没有这个说法。
indy 是 block 模式的吧

论坛徽章:
0
3 [报告]
发表于 2006-08-15 08:35 |只看该作者
您说的没错,indy socket server是采用的阻塞式socket通信,难道我的c socket通信要做另外处理?
我现在的c socket是这样写的:
if ( ( Sock = socket( AF_INET, SOCK_STREAM, 0 ) ) < 0 )
  {
       WriteLog( "Error , create socket!");
       /*DelSem( SemNo );*/
       exit(1);
  }
  /*WriteLog("Create socket success!" );*/
  if (program_init_run == 0) WriteLog("Create socket success!" );
  /*printf(" g_server_ip=%s,g_server_port=%d!",g_server_ip,g_server_port );*/

  bzero( &sin, sizeof( sin ) );
  sin.sin_family = AF_INET;
  sin.sin_addr.s_addr = inet_addr( g_server_ip);
  sin.sin_port = htons( g_server_port );

  if ( (i = connect( Sock, ( struct sockaddr * )&sin, sizeof(sin) )) < 0 )
  {}

论坛徽章:
0
4 [报告]
发表于 2006-08-15 09:28 |只看该作者
应该不会有问题的,是不是你服务端有问题

论坛徽章:
0
5 [报告]
发表于 2006-08-15 09:35 |只看该作者

回复 4楼 chestnut king 的帖子

应该没问题,我写了个简单的indy socket client,发包测试indy socket server都能正常接收通信!!!
另外,我记得unix环境下的socket通信通常也是采用阻塞式的socket通信,这个和indy socket差不多。
如果哪位朋友有心的话,可以在相同或类似的环境下测试一下,满有意思的!!!

论坛徽章:
0
6 [报告]
发表于 2006-08-15 14:51 |只看该作者

回复 5楼 liyongming5941 的帖子

不好意思,我找到原因了。这样的通信模式下,unix的c socket发送包需带上回车符,否则indy socket
server 一直等待写状态!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP