我正在使用TCP服务器中的rand()函数发送数据类型为uint8的生成的随机值的大1d数组,但是由于在TCP客户端上没有接收到任何内容,数据类型可能是个问题。控制台还告诉我,代码每次都会生成相同的“204”值,即使我使用的是rand()函数。
#define DEFAULT_BUFLEN 19200
int main(int argc , char *argv[])
{
WSADATA wsa;
SOCKET server_socket, client_socket;
struct sockaddr_in server_addr, client_addr;
int c, iResult;
char sendbuf [DEFAULT_BUFLEN];
int sendbuflen = DEFAULT_BUFLEN;
uint8_t* p;
int i;
// Send uint8_t data to client
p = (uint8_t*)sendbuf;
for (i = 0; i < 19200; i++)
{
p[i] = rand() % 256; //range 0-255 */
i++;
printf("%d\n", p[i]);
}
return 0;
iResult = send(client_socket, sendbuf, sendbuflen, 0);
}
最佳答案
您需要为rand
函数设置种子。使用srand(time(NULL))
进行播种同时从循环体中移除i++;
语句。
关于c - 在C中使用rand(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21077062/