小编use*_*012的帖子

套接字send和recv中FLAG的含义

在Linux手册页中进行搜索时,我发现有关套接字中send和recv格式的内容如下:

对于发送,

ssize_t send(int sockfd, const void *buf, size_t len, int flags);
Run Code Online (Sandbox Code Playgroud)

对于revv,

ssize_t recv(int sockfd, void *buf, size_t len, int flags);
Run Code Online (Sandbox Code Playgroud)

但是我不确定他们想说些什么int flags。在一个示例代码中,我发现flag的值为0(零)。这是什么意思?手册页下面的那一行的含义是什么?

"The flags argument is the bitwise OR of zero or more of the following flags."
Run Code Online (Sandbox Code Playgroud)

然后是标志列表:

MSG_CONFIRM
MSG_DONTROUTE
.
.
.
etc.
Run Code Online (Sandbox Code Playgroud)

c sockets linux socketserver

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

C++中指针的类型转换说明

我不明白我在这里提供的代码中提到的两行.为什么我需要使用int*?我如何访问私有变量?我不确定我用这两行做什么.请详细解释.

问题线:

int *p = (int *) &s;  
*p=10;
Run Code Online (Sandbox Code Playgroud)

主要代码:

#include <iostream>

using namespace std;

class sample {
private:
  int a;
public:
  void function () {
    a=5;
  }
  void printA () {
    cout<<"value is "<<a<<endl;
  }
};

int main () {
  sample s;
  s.function();
  s.printA();

  int *p = (int *) &s;
  *p=10;

  s.printA();
}
Run Code Online (Sandbox Code Playgroud)

c++ encapsulation casting private class

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

无法使用我的套接字服务器程序与多个客户端连接

我的套接字服务器程序如下所述.它适用于单个客户端,但当我尝试同时将其与另一个客户端连接时,我无法连接.但是我已经在我的程序中将MAX_CLIENTS定义为2,但仍然是为什么我无法连接多个客户端?连接多个客户端的正确流程是什么?我可以通过修改此代码来连接多个客户端吗?任何可能的修复?

套接字服务器代码:

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <error.h>
#include <strings.h>
#include <unistd.h>
#include <arpa/inet.h>

#define ERROR -1
#define MAX_CLIENTS 2
#define MAX_DATA 1024




main (int argc, char **argv){


    struct sockaddr_in server;
    struct sockaddr_in client;
    int sock;
    int new;
    int sockaddr_len = sizeof (struct sockaddr_in);
    int data_len;
    char data [MAX_DATA];


    if ((sock = socket (AF_INET, SOCK_STREAM, 0)) == -1)
    {

        perror ("socket: ");
        exit (-1);

    }   
    printf("after socket");
    server.sin_family = AF_INET;
    server.sin_port = htons(atoi(argv[2]));
    server.sin_addr.s_addr …
Run Code Online (Sandbox Code Playgroud)

c sockets socketserver

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

标签 统计

c ×2

sockets ×2

socketserver ×2

c++ ×1

casting ×1

class ×1

encapsulation ×1

linux ×1

private ×1