编译没错误,运行时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
[解决办法]
程序是没有错误,但是运行时要输入两个参数。
不知道你是如何运行的?最好帖出过程来