首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

编译没异常,运行时Segmentation fault(高分悬赏)

2013-07-01 
编译没错误,运行时Segmentation fault(高分悬赏)#include stdio.h#include sys/types.h#include sys/

编译没错误,运行时Segmentation fault(高分悬赏)

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/fcntl.h>
#include <stdlib.h>


main(argc,argv)
int argc;

char **argv;

{

int sockfd;
FILE *fp1;

struct sockaddr_in server;

struct hostent *hp, *gethostbyname();

char msg[1];

sockfd=socket(AF_INET,SOCK_STREAM,0);
fp1=fopen("file.txt","r");

if (sockfd<0)

printf("Opening stream socket");

if ((hp=gethostbyname(argv[1]))==NULL){

fprintf(stderr,"%s:unknown host\n",argv[1]);

exit(2);

}

server.sin_family=AF_INET;
bcopy((char *)hp->h_addr,(char *)&server.sin_addr.s_addr,hp->h_length);
server.sin_port=htons(atoi(argv[2]));
if (connect(sockfd,(struct sockaddr *)&server,sizeof(server))<0)
printf("connecting stream socket");
while((fread(msg,1,1,fp1))>0){
//printf("Enter send message: %s",msg);
//scanf("%s",msg);
if(!strlen(msg)) break;
if(send(sockfd,msg,strlen(msg),0)<0)
printf("sending message");
bzero(msg,sizeof(msg));
}
printf("EOF...disconnect\n");
close(sockfd);
exit(0);

}


看了半天没看出哪有问题!大侠帮我看看哪错了,谢谢了。 服务器 socket
[解决办法]
gcc a.cpp
gdb ./a.out
bt
[解决办法]
程序是没有错误,但是运行时要输入两个参数。

不知道你是如何运行的?最好帖出过程来

热点排行