- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
服务器:
void send_list(sqlite3 *db, int sock) {
int Fwrite,Fread;
int id_order;
int bet2=0;
Booking info;
char query2[200];
Fread = FullRead(sock,&bet2,sizeof(bet2));
if(Fread <0)
{
perror("Error to Recive \n");
exit(1);
}
Fwrite = FullWrite(sockREP,&bet2,sizeof(bet2));
if(Fwrite < 0)
{
perror("Error to Send \n");
exit(1);
}
printf("bet2: %d\n",bet2 );
Fread = FullRead(sock,&info.NAME,sizeof(info));
if(Fread <0)
{
perror("Error to Recive \n");
exit(1);
}
Fread = FullRead(sock,&info.SURNAME,sizeof(info));
if(Fread <0)
{
perror("Error to Recive \n");
exit(1);
}
Fread = FullRead(sock,&info.COD_RIC,sizeof(info));
if(Fread <0)
{
perror("Error to Recive \n");
exit(1);
}
struct timeval time;
gettimeofday(&time, NULL);
srand((time.tv_sec*1000)+(time.tv_sec/1000));
id_order = rand() %100 + 1;
Fwrite = FullWrite(sockREP,&info.NAME,sizeof(info));
if(Fwrite < 0)
{
perror("Error to Send \n");
exit(1);
}
Fwrite = FullWrite(sockREP,&info.SURNAME,sizeof(info));
if(Fwrite < 0)
{
perror("Error to Send \n");
exit(1);
}
Fwrite = FullWrite(sockREP,&info.COD_RIC,sizeof(info));
if(Fwrite < 0)
{
perror("Error to Send \n");
exit(1);
}
Fwrite = FullWrite(sockREP,&id_order,sizeof(id_order));
if(Fwrite < 0)
{
perror("Error to Send \n");
exit(1);
}
printf("this bet2: %d\n",bet2 );
Fwrite = FullWrite(sock,&id_order,sizeof(id_order));
if(Fwrite < 0)
{
perror("Error to Send \n");
exit(1);
}
}
服务器2(SockREP):
void recv_list(sqlite3 *db, int sock) {
int Fwrite,Fread;
int id_order;
int bet2=0;
Booking info;
Fread = FullRead(sock,&bet2,sizeof(bet2));
if(Fread < 0)
{
perror("Error to Recive \n");
exit(1);
}
Fread = FullRead(sock,&info.NAME,sizeof(Booking));
if(Fread < 0)
{
perror("Error to Receive \n");
exit(1);
}
Fread = FullRead(sock,&info.SURNAME,sizeof(Booking));
if(Fread < 0)
{
perror("Error to Receive \n");
exit(1);
}
Fread = FullRead(sock,&info.COD_RIC,sizeof(Booking));
if(Fread < 0)
{
perror("Error to Receive \n");
exit(1);
}
Fread = FullRead(sock,&id_order,sizeof(id_order));
if(Fread < 0)
{
perror("Error to Send \n");
exit(1);
}
}
客户端( socks ):
void getMenu(int sock)
{
int Fwrite,Fread;
int id_order;
int bet2=0;
Booking info;
printf("Select Data: ");
scanf("%d",&bet2);
Fwrite = FullWrite (sock,&bet2,sizeof(bet2));
if(Fwrite < 0)
{
perror("Error to Send \n");
exit(1);
}
printf("Name: ");
scanf("%s",&info.NAME);
printf("Surname: ");
scanf("%s",&info.SURNAME);
printf("Medical Code: ");
scanf("%s",&info.COD_RIC);
Fwrite = FullWrite(sock,&info.NAME,sizeof(Booking));
if(Fwrite <0)
{
perror("Error to Recive \n");
exit(1);
}
Fwrite = FullWrite(sock,&info.SURNAME,sizeof(Booking));
if(Fwrite <0)
{
perror("Error to Recive \n");
exit(1);
}
Fwrite = FullWrite(sock,&info.COD_RIC,sizeof(Booking));
if(Fwrite <0)
{
perror("Error to Recive \n");
exit(1);
}
Fread = FullRead(sock,&id_order,sizeof(id_order));
if(Fread < 0)
{
perror("Error to Send \n");
exit(1);
}
}
我的问题是:
为什么在服务器中变量bet2在3次完整读取后改变值:
1) Fread = FullRead(sock,&info.NAME,sizeof(info));
2) Fread = FullRead(sock,&info.SURNAME,sizeof(info));
3) Fread = FullRead(sock,&info.COD_RIC,sizeof(info));
我尝试使用read(),但结果是相等的
FullRead函数是这样的:
ssize_t FullRead(int fd, void *buf, size_t count)
{
size_t nleft = count;
ssize_t nread;
while (nleft > 0)
{
if ( (nread = read(fd, buf, nleft)) < 0)
{
if (errno == EINTR)
continue;
else
exit(nread);
}
else if (nread == 0)
break;
nleft -= nread;
buf += nread;
}
buf = 0;
return (nleft);
}
FullWrite 函数是这样的:
ssize_t FullWrite(int fd, const void *buf, size_t count)
{
size_t nleft;
ssize_t nwritten;
nleft = count;
while (nleft > 0) { /* repeat until no left */
if ( (nwritten = write(fd, buf, nleft)) < 0) {
if (errno == EINTR) { /* if interrupted by system call */
continue; /* repeat the loop */
} else {
return(nwritten); /* otherwise exit with error */
}
}
nleft -= nwritten; /* set left to write */
buf +=nwritten; /* set pointer */
}
return (nleft);
}
最佳答案
如果我正确理解你的问题,你是在问各种变量(info.NAME、info.SURNAME、bet2等)的值如何改变,因为你的代码中没有任何内容实际上使用 =
运算符设置这些值.
答案是指针别名。例如,info.SURNAME
位于计算机内存中的特定位置。可以通过 & 运算符创建指向该位置的指针,例如void * ptr = &info.SURNAME
。
因此,当您像这样调用 FullRead
时:
Fread = FullRead(sock,&info.SURNAME,sizeof(Booking));
...您向 FullRead
函数提供有关您的 info.SURNAME 字符数组在内存中的位置的信息,以及该字符数组的大小(以字节为单位)。
有了这些信息,FullRead() 现在可以将新字节写入 char 数组。例如它可能会做这样的事情:
int FullRead(int sock, char * buf, int numBytesInBuf)
{
// the real code would read bytes from the network but
// to keep this example simple I'll just declare some dummy data
char dummyData[] = "blah blah blah";
int numBytesToCopy = std::min(numBytesInBuf, sizeof(dummyData));
for (int i=0; i<numBytesToCopy; i++) buf[i] = dummyData[i];
return numBytesToCopy;
}
...这会将数据写入 buf
指向的内存,也就是说,写入 info.SURNAME
。
鉴于 bet2
不是 char 数组而是 int,那么这将如何与 bet2
一起使用?
它的工作方式完全相同 - bet2
可能是一个 int,但它仍然在内存中具有一个位置,并且大小以字节为单位(通常为 4 或 8 字节,具体取决于您使用的计算机类型),所以同样的技巧也适用...FullRead()
可以写入bet2所在的内存区域,从而通过更新其字节来改变bet2的值。
Fread = FullRead(sock,&bet2,sizeof(bet2)); // writes new value into bet2!
关于c - 如果不操纵它如何改变值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48675603/
我是puppeteer的新手(通常对javascript不太了解),并且正在尝试编写一些基本功能来: 从XPath获取所有链接 循环浏览并单击那些链接 屏幕截图并保存页面的HTML 返回屏幕快照,然后
您好,我正在尝试创建一个我想通过网络发送到服务器的数据包,我几乎已经对数据包进行了排序,但是它缺少一个长度标识符,我需要在我的方法结束时计算它并添加放入数据包。 数据包结构是这样的 前导值标识符 (U
我正在尝试更改按钮的样式(实际上只是一个 div)。我可以在 CSS 中使用 .classname:active 来实现,但是按钮只会在被点击时改变样式;单击释放后,它不会保持样式更改。所以,我决定使
我有一个下拉导航栏(fiddle here 和下面的代码片段)。单击 SubItem 时,JS 函数会进行 Ajax 调用(未显示)。我想要实现的是在单击 SubItem 时隐藏 SubItems 列
给定一组平面图(Autocad、svg 或任何需要的格式...),我想以编程方式生成从 A 点到 B 点的方向。基本上我想说:“我如何获得从101房间到143房间?” (或三倍奖励积分,从 101 房
我在 Win32 下的 MS dev studio 中将一些代码从 C 转换为 C++。在旧代码中,我使用 QueryPerformanceCounter() 进行了一些高速计时,并对获得的 __in
我正在寻找一种方法来从 QTableWidget 单元格中挤出所有可能的空间。我粘贴了一些代码来演示我在下面尝试过的事情,并且我上传了在 OSX 10.8.5、Qt 4.8.4、PySide 1.2.
对于 PhoneGap 移动应用程序,我有以下场景: 应用程序打开并显示index.html 用户登录并被重定向到 home.html 然后用户可以转到 news.html 我想以一种方式处理 hom
可能是一个简单的问题: 尝试使用plotly生成散点图并自定义图例。 这是我的数据: require(plotly) set.seed(1) my.df % add_annotations(text=
在 Instagram/Facebook 上的帖子下方,您会看到类似“第 1 个人、第 2 个人和其他 10 个人喜欢此帖子”的文字。我想知道如何使用 Django 来实现网站的相同效果?通常,我会使
我必须使用 Form.Action 重定向到将从我的页面获取值的脚本。值得注意的是,这个脚本是外部的。 我的问题是,我还想要被点击并连接了 Action 的按钮,以便首先在后面的代码中完成一些功能。
我有一个问题。 我可以在 Express 中操纵路线吗?当我发出 get 或 post 申请地址时,我可以将 2 条路线传递到同一个 get 或 post 申请吗?像这样的东西。 module.exp
如果我在不同的 Canvas 上绘制我的图像,我可以使用 js 库应用一些效果,如淡入淡出、移动和其他效果吗?如果可能的话,在速度和性能方面可能会很有趣,而不是操纵“原始”?非常感谢 最佳答案 if
我希望你能帮助我。如何转换这个扁平的 JavaScript 数组,来自: [ {"state":"First State","district":"First District","local_
我有一个 React JSX 元素,我想遍历它的子元素,对其中的每个字符串元素执行替换(或任何其他操作),然后返回新的、修改后的 JSX 元素。例如: var element = Text { var
我正在制作一个 Java 网络项目,我想在其中使用一些 javascript 操作一些前端 SVG 元素。 我正在绘制一个相当简单的车库图,其中有一个来自 JSP 页面的棚屋元素。 我想要一个 jav
我读过许多帖子,其中人们询问有关对 XML 元素强制执行某些属性顺序的问题,一般的回答是这不合法/必需/不允许/相关/其他。 我不是在寻找任何说我不应该关心属性顺序的回复,所以如果这是你的观点,请不要
大家好,我的问题是,如何将两个 C 风格的字符串 append 到一个字符串中? 我对 C++ 的处理方式 (std::string) 很感兴趣,我从未接触过 C 风格的字符串,需要为我当前的开发项目
我选择了 HTML 页面上的所有节点,如下所示: var all = $('*'); 然后我遍历每个节点,检查每个节点是否有关联的文本值: var newDom = all.map((i, node)
示例取自 Mozilla's help page re = /(\w+)\s(\w+)/; str = "John Smith"; newstr = str.replace(re, "$
我是一名优秀的程序员,十分优秀!