首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用C语言中的套接字将字符串发送到结构上的服务器

如何使用C语言中的套接字将字符串发送到结构上的服务器
EN

Stack Overflow用户
提问于 2018-12-17 01:04:45
回答 1查看 0关注 0票数 0

我需要帮助,我需要发送一个使用socket的结构中的字符数组。这是我的客户端代码:

代码语言:javascript
复制
struct myStruct {
  char str[100];
  long int data;
};
int sock = 0;
char buffer[128];
struct myStruct *st = (struct myStruct *) buffer;
long int size;

strcat(st->str, "hello");
pkt->data = 1;

if (send(sock,st,sizeof(st),0) <0)
    printf ("error\n");

这是我的服务器端代码:

代码语言:javascript
复制
     long int Data;
     char Str[100];
     char bytes_to_receive;
     char received_bytes;
     struct myStruct
     {
        char str[100];
        long int data;
     };
     sd = client_socket[i];
     char buffer[128];
     struct myStruct *st = (struct myStruct *) buffer; 
     bytes_to_receive = sizeof(st);
     received_bytes = 0;
     if (recv(sd, st, sizeof(st), 0) < 0) {
          //Somebody disconnected , get his details and print
          getpeername(sd , (struct sockaddr*)&address , \
                            (socklen_t*)&addrlen);
                printf("Host disconnected , ip %s , port %d \n" ,
                       inet_ntoa(address.sin_addr) , ntohs(address.sin_port));

                //Close the socket and mark as 0 in list for reuse
                close( sd );
                client_socket[i] = 0;
            }  else {
                do {
                    received_bytes += (buffer + received_bytes, bytes_to_receive - received_bytes);
                } while (received_bytes != bytes_to_receive);


                strcpy(Str, st->str);
                Data = st->data;
                printf("Length: %s\n", Str);
                printf("data : %ld\n", Data);
            }

我认为字符串必须在发送前序列化,并在接收时反序列化,问题是我不知道如何。有人可以帮助我吗?先谢谢!

EN

Stack Overflow用户

发布于 2018-12-17 10:44:40

我认为你应该发布完整的代码,因为还是不太清楚。

首先是你在Unix下?

在您使用的sock初始化为0 的客户端上:您是否正在更改它以便为服务器创建套接字?

您正在执行TCP或UDP连接吗?在第一种情况下你是连接到服务器(在Unix下通过调用connect)?

在服务器中,您首先要调用bind以指定端口-IP对,然后再listen开始执行服务器。

请在您的问题中添加信息。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档