2016-03-25 13 views
-2

"C"でファイルを転送するためのUDPクライアントサーバーのコードを記述しました。クライアントとサーバーの両方がエラーなしでコンパイルされます。しかし、実行中のクライアントでは、実行時エラー "セグメンテーション・フォルト(コア・ダンプ)"が表示されます。任意のソリューション??ファイルを転送するudpクライアントサーバープログラムのセグメンテーションフォルト(コアダンプ)

私のコード:

server.c

#include<stdio.h> 
#include<string.h> 
#include<stdlib.h> 
#include<sys/socket.h> 
#include<sys/types.h> 
#include<netinet/in.h> 
#define SERV_PORT 6349 
int main(int argc,char **argv) 
{  
char filename[80],recvline[80]; 
FILE *fp; 
struct sockaddr_in servaddr,cliaddr; 
int clilen,sockfd; 
sockfd=socket(AF_INET,SOCK_DGRAM,0); 
bzero(&servaddr,sizeof(servaddr)); 
servaddr.sin_family=AF_INET; 
servaddr.sin_port=htons(SERV_PORT); 
bind(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr)); 
clilen=sizeof(cliaddr); 
recvfrom(sockfd,filename,80,0,(struct sockaddr*)&cliaddr,&clilen); 
printf("\n date in the file is \n "); 
fp=fopen(filename,"r"); 
while(fgets(recvline,80,fp)!=NULL) 
{ 
printf("\n %s\n ",recvline); 
} 
fclose(fp); 
} 

/いるclient.c

#include<stdio.h> 
#include<string.h> 
#include<stdlib.h> 
#include<sys/types.h> 
#include<sys/socket.h> 
#include<netinet/in.h> 
#include<unistd.h> 
#include <arpa/inet.h> 
#define SERV_PORT 6349 
int main(int argc,char **argv) 
{ 
char filename[80]; 
int sockfd; 
struct sockaddr_in servaddr; 
sockfd=socket(AF_INET,SOCK_DGRAM,0); 
bzero(&servaddr,sizeof(servaddr)); 
servaddr.sin_family=AF_INET; 
servaddr.sin_port=htons(SERV_PORT); 
inet_pton(AF_INET,argv[1],&servaddr.sin_addr); 
printf("enter the file name"); 
scanf("%s",filename); 
sendto(sockfd,filename,strlen(filename),0,(struct sockaddr*)&servaddr,sizeof(servaddr)); 
} 
+0

尋ねる前に、あなたはARGVのためのコマンドラインで引数が含まれていませんでした推測していますあなた自身で少なくともいくつかの基本的なデバッグを行うことが期待されます。デバッガを使用するか、またはprintステートメントをデバッグします。各関数呼び出しの基本的なエラーチェックを行います。 – kaylum

+0

クライアントコードに引数を渡してもよろしいですか(つまり、argv [1] 'が存在しますか?) – yano

+0

他のエラーの中では、終端の0を含まない' strlen(filename) 。 –

答えて

0

あなたはgdbデバッガを使用する場合、それはあなたを教えてあげますあなたはsegフォールトを持っているライン。

チュートリアルで:

http://www.unknownroad.com/rtfm/gdbtut/はしかし私にセグメンテーションフォルトを与えていないあなたのコードを実行しているので、私は[1]

関連する問題