无法在客户端发送的服务器中接收文件名

Nandan A

我正在尝试编写一个简单的套接字程序,该程序在客户端读取文件名并将其发送到服务器。如果存在,文件的内容将发送回客户端。客户端和服务器能够成功连接,但是当我读取文件名时,我没有任何输出(程序不会终止)。请告诉我出了什么问题。

服务器

int main()
{
int create_socket,new_socket,fd,addlen,n;
int bufsize=1024;
char *buffer=malloc(bufsize);
char fname[255];
struct sockaddr_in address;

//printf("program");    
if((create_socket=socket(AF_INET,SOCK_STREAM,0))>0)
printf("socket created");

address.sin_family=AF_INET;
address.sin_port=htons(15000);
address.sin_addr.s_addr=INADDR_ANY;

if(bind(create_socket,(struct sockaddr*)&address,sizeof(address))==0)
printf("socket binded");
    while(1)

{
    printf("Inside while loop");
    listen(create_socket,3);
    addlen=sizeof(struct sockaddr_in);
    if(new_socket=accept(create_socket,(struct sockaddr*)&address,&addlen)>0)
    printf("%d connected",inet_ntoa(address.sin_addr));
    else
    printf("not connected");

    recv(new_socket,fname,255,0);
    printf("file name is %s",fname);
    if(fd=open(fname,O_RDONLY)<0)
    {
        strcpy(buffer,"Not such file found");
        send(new_socket,buffer,sizeof(buffer),0);
    }
    else
    {
        while(n=read(fd,buffer,bufsize)>0)
        send(new_socket,buffer,n,0);
    }
    close(new_socket);
}
close(create_socket);

}

客户端

int main(int argc,char *argv[])
{
int create_socket,n;
int bufsize=1024;
char *buffer=malloc(bufsize);
char fname[255];
struct sockaddr_in address;

if((create_socket=socket(AF_INET,SOCK_STREAM,0))>0)
printf("socket created\n");

address.sin_family=AF_INET;
address.sin_port=htons(15000);
inet_pton(AF_INET,argv[1],&address.sin_addr);



    if(connect(create_socket,(struct sockaddr*)&address,sizeof(address))==0)
    printf("%s connected\n",argv[1]);
    else
    printf("not connected\n");

    printf("Enter the filename\n");
    scanf("%s",fname);
    send(create_socket,fname,strlen(fname),0);

    printf("get the values");

        while(n=recv(create_socket,buffer,bufsize,0)>0)
        write(1,buffer,n);



return close(create_socket);

}
路德维希·舒尔兹(Ludwig Schulze)

使用提供的信息,传输文件名的两个问题显而易见:

(1)您不检查send的返回值。您无法确定发送了什么。

(2)您选择不通过网络发送终结符“ \ 0”。因此,接收方无法确定何时已接收到完整的文件名。接收器也不会检查recv的返回值。另外,接收者不会费心用'\ 0'终止接收到的文件名。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

服务器无法从客户端Java接收文本

来自分类Dev

无法在TCP客户端服务器中接收完整文件

来自分类Dev

套接字服务器无法接收客户端发送的消息

来自分类Dev

服务器无法向客户端发送消息

来自分类Dev

客户端/服务器发送大文件

来自分类Dev

服务器无法在c winsock编程中接收到客户端消息

来自分类Dev

使用Java从服务器发送文件后,TCP无法接收文本消息

来自分类Dev

无法从客户端将文件数据发送到nodejs服务器

来自分类Dev

如何从服务器发送要在客户端浏览器中打开的 html 文件?

来自分类Dev

在服务器端PHP中通过AJAX接收文件

来自分类Dev

如何在cakePHP 3.x中接收从客户端发送到服务器端的JSON

来自分类Dev

无法在Matlab中的UDP客户端和Linux中的服务器之间发送数据

来自分类Dev

服务器无法通过C中的套接字向客户端发送消息

来自分类Dev

无法在python客户端中解密Java服务器发送的Blob

来自分类Dev

可以为文件名制定规则以仅向客户端或服务器提供服务吗?

来自分类Dev

通过python中的TCP套接字在客户端-服务器之间发送文件?

来自分类Dev

使用C中的套接字将文件从客户端发送到服务器

来自分类Dev

通过python中的TCP套接字在客户端-服务器之间发送文件?

来自分类Dev

socket编程客户端同时发送和接收文件

来自分类Dev

Java套接字接收文件,然后将响应发送回客户端

来自分类Dev

syslog-ng-使用wildcard_file时将文件名从客户端传递到服务器

来自分类Dev

我用netty写了一个应用程序,从客户端向服务器发送消息,但服务器无法接收消息

来自分类Dev

客户端while循环从服务器发送和接收

来自分类Dev

解析推送通知是从服务器发送的,但客户端未接收到

来自分类Dev

Java多线程套接字客户端/服务器:发送和接收Enummap对象

来自分类Dev

在服务器事件中从服务器向客户端发送通知

来自分类Dev

客户端/服务器聊天,发送在线用户列表,仅由最近连接的客户端接收?

来自分类Dev

接收服务器对客户端请求的响应

来自分类Dev

用Golang编写的UDP客户端无法从服务器接收消息

Related 相关文章

  1. 1

    服务器无法从客户端Java接收文本

  2. 2

    无法在TCP客户端服务器中接收完整文件

  3. 3

    套接字服务器无法接收客户端发送的消息

  4. 4

    服务器无法向客户端发送消息

  5. 5

    客户端/服务器发送大文件

  6. 6

    服务器无法在c winsock编程中接收到客户端消息

  7. 7

    使用Java从服务器发送文件后,TCP无法接收文本消息

  8. 8

    无法从客户端将文件数据发送到nodejs服务器

  9. 9

    如何从服务器发送要在客户端浏览器中打开的 html 文件?

  10. 10

    在服务器端PHP中通过AJAX接收文件

  11. 11

    如何在cakePHP 3.x中接收从客户端发送到服务器端的JSON

  12. 12

    无法在Matlab中的UDP客户端和Linux中的服务器之间发送数据

  13. 13

    服务器无法通过C中的套接字向客户端发送消息

  14. 14

    无法在python客户端中解密Java服务器发送的Blob

  15. 15

    可以为文件名制定规则以仅向客户端或服务器提供服务吗?

  16. 16

    通过python中的TCP套接字在客户端-服务器之间发送文件?

  17. 17

    使用C中的套接字将文件从客户端发送到服务器

  18. 18

    通过python中的TCP套接字在客户端-服务器之间发送文件?

  19. 19

    socket编程客户端同时发送和接收文件

  20. 20

    Java套接字接收文件,然后将响应发送回客户端

  21. 21

    syslog-ng-使用wildcard_file时将文件名从客户端传递到服务器

  22. 22

    我用netty写了一个应用程序,从客户端向服务器发送消息,但服务器无法接收消息

  23. 23

    客户端while循环从服务器发送和接收

  24. 24

    解析推送通知是从服务器发送的,但客户端未接收到

  25. 25

    Java多线程套接字客户端/服务器:发送和接收Enummap对象

  26. 26

    在服务器事件中从服务器向客户端发送通知

  27. 27

    客户端/服务器聊天,发送在线用户列表,仅由最近连接的客户端接收?

  28. 28

    接收服务器对客户端请求的响应

  29. 29

    用Golang编写的UDP客户端无法从服务器接收消息

热门标签

归档