当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : linux socket错误
帖子发表于 : 2007-11-12 13:47 

注册: 2007-03-15 21:23
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
以下是clinet端的源代码
#include "unp.h"
main( int argc, char **argv )
{
int sockfd, n;
char recvline[MAXLINE+1];
struct sockaddr_in servaddr;
/*struct sockaddr_in{
* short int sin_family;
* unsigned short int sin_port;
* struct in_addr sin_addr;
* unsigned char sin_zero[8];
*/
struct hostent *he;

if ( argc != 2 )
{
fprintf(stderr,"usage: a.out <IPaddress>");
}
if((he=gethostbyname(argv[1])) == NULL)
{
herror("gethostbyname");
exit(1);
}


if (( sockfd = socket(AF_INET,SOCK_STREAM,0)) < 0 )
{
perror("socket error" );
}

memset( &servaddr, 0, sizeof(servaddr));
//bzero( &servaddr, sizeof(servaddr))
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(9120);

if ( connect( sockfd, (SA *)&servaddr, sizeof( servaddr)) < 0 )
{
perror("connect error" );
}

while(( n= read(sockfd, recvline, MAXLINE)) > 0 )
{
recvline[n] = 0; //null terminate
if (fputs(recvline, stdout) == EOF )
{
perror("fputs error");
}
}
if (n<0)
{
perror("read error");
}

exit(0);
}

其实也就是unp里面的第一个程序。。
可是我在编译的时候老是出现 。。段错误 还清帮忙解释下
bat@bat-desktop:~/legend/socket/unp$ daytimetcpcli
usage: a.out <IPaddress>段错误
bat@bat-desktop:~/legend/socket/unp$ daytimetcpcli 127.0.0.1
connect error: Connection refused
read error: Transport endpoint is not connected
......

使用gdb运行 是显示inet_pton这一行有错误。。。可是我是在看不到这个那里不对的
谢谢指教


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-11-12 16:14 

注册: 2007-03-15 21:23
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
没人帮忙看下吗 。。。。。


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-11-12 22:15 

注册: 2006-03-19 18:25
帖子: 89
地址: FZ->TJ->PEK->AMS->MTL
送出感谢: 0 次
接收感谢: 0 次
if ( argc != 2 )
{
fprintf(stderr,"usage: a.out <IPaddress>");
// Why didn't you exit (1) here?
}

这里为什么不exit (1); ? 你没有输入ip地址,argv[1]是NULL,下面又传给了gethostbyname,可不要segmentation fault么。

if((he=gethostbyname(argv[1])) == NULL)
{
herror("gethostbyname");
exit(1);
}


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-11-13 22:08 

注册: 2007-10-30 18:58
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
楼主也太大意了!估计是抄错了。请问一下,SA是什么东西,我以前没见过,多谢指教!


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-11-13 22:46 

注册: 2006-03-19 18:25
帖子: 89
地址: FZ->TJ->PEK->AMS->MTL
送出感谢: 0 次
接收感谢: 0 次
liujunwei 写道:
楼主也太大意了!估计是抄错了。请问一下,SA是什么东西,我以前没见过,多谢指教!


呵呵,看到这种古怪的东西就要马上想到,这是某某人搞的 typedef 罢了,楼主不也说了,代码来自unp,自己看看去吧,enjoy ;)


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译