小编Nay*_*yan的帖子

如果客户端在没有睡眠的情况下发送多个缓冲区,为什么tcp服

如果我在一段时间后发送缓冲区,我的客户端正确发送到服务器.但是如果我在没有间隔的情况下发送消息,则服务器会收到一个缓冲区.例如,如果我发送两个缓冲区"message1"和"message2"并在这两个发送操作服务器之间放置1秒睡眠,则接收2个缓冲区并打印message1"\n"message2.但是如果我在没有睡眠的情况下发送这两个缓冲区服务器获得1个缓冲区并打印message1message2.我无法理解为什么会发生这种情况.我的服务器和客户端代码如下.

server.c

            #include<stdio.h>
            #include<string.h>    //strlen
            #include<stdlib.h>    //strlen
            #include<sys/socket.h>
            #include<arpa/inet.h> //inet_addr
            #include<unistd.h>    //write

            #include<pthread.h> //for threading , link with lpthread

            void *connection_handler(void *);

            int main(int argc, char *argv[])
            {
                int socket_desc, new_socket, c, *new_sock;
                struct sockaddr_in server, client;
                char *message;

                //Create socket
                socket_desc = socket(AF_INET, SOCK_STREAM, 0);
                if (socket_desc == -1)
                {
                    printf("Could not create socket");
                }

                //Prepare the sockaddr_in structure
                server.sin_family = AF_INET;
                server.sin_addr.s_addr = INADDR_ANY;
                server.sin_port = htons(10240);

                //Bind
                if (bind(socket_desc, (struct sockaddr *)&server, sizeof(server)) < 0)
                {
                    puts("bind …
Run Code Online (Sandbox Code Playgroud)

c sockets linux tcp

1
推荐指数
1
解决办法
110
查看次数

如何在c中找到包含asci 0值的多个字符的字符数组的长度

我有一个十六进制值的字符指针,如下所示.a = {0x01,0x02,0x00,0x03,0x04,0x05,0x00}; 我必须找到上面数组的长度.但是strlen给出2并且sizeof给出4(char指针大小).我怎样才能找到长度?我从套接字接收字符数组.

c arrays string-length

0
推荐指数
1
解决办法
77
查看次数

标签 统计

c ×2

arrays ×1

linux ×1

sockets ×1

string-length ×1

tcp ×1