我们正在尝试应用基于UDP的协议,并且在sendto()函数中存在一些问题.
当我们尝试用ack响应写请求时,我们从sendto()函数得到"无效参数"
这是我们的代码:
int sock; // Socket
sockaddr_in_t echoServAddr; // Local address
sockaddr_in_t echoClntAddr; // Client address
unsigned int cliAddrLen; // Length of incoming message
data_packet_t echoBuffer;
wrq_packet_t wrqBuffer;
unsigned short echoServPort; // Server port
int recvMsgSize; // Size of received message
ack_packet_t Ack;
struct timeval timeout;
fd_set fds;
/* Create socket for sending/receiving datagrams */
if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) perror("TTFTPERROR: socket() failed");
/* Construct local address structure */
memset(&echoServAddr, 0, sizeof(echoServAddr));
echoServAddr.sin_family = AF_INET;
echoServAddr.sin_addr.s_addr …Run Code Online (Sandbox Code Playgroud) 我正在编写一个创建名称数据库的脚本,这个数据库有不同的版本.我的脚本将版本作为输入(在没有输入的情况下它具有默认版本)每个数据库版本都基于前一版本,但包含一些其他名称.
我试图找到一种方法来定义我的数组中的一些enteries作为iversion的函数.因此我使用像verilog IFDEF这样的东西
例如:
my @DATABASE = (
"Arik",
"Ben",
if ($version = 1.3) {
"Suzie",
"Dan",
}
"Roth"
);
Run Code Online (Sandbox Code Playgroud)
在这个例子中,名称Arik,Ben和Roth将在所有版本的数据库中,但Suzie和Dan将只在1.3版数据库中
有没有一个好方法呢?