小编Joh*_*uay的帖子

Java中的对象文字?

我正在学习用于Web开发的GWT,并遇到了一段我无法理解的代码.

helloBtn.addClickHandler(new ClickHandler() {
    public void onClick(ClickEvent event) {
        Window.alert("Hello!");
    }
});
Run Code Online (Sandbox Code Playgroud)

如果有人可以向我解释它的作用会很棒.

谢谢,约翰

java

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

将结构数组写入C中的二进制文件

我有一个结构数组,我想写入二进制文件.我有一个write.c程序和一个read.c程序.write.c程序似乎工作正常,但是当我运行read.c程序时,我遇到了分段错误.我是C的新手所以如果有人可以查看我的代码以查找任何明显的错误,那将会很棒.我保证不会太久:)

为write.c:

#include <stdlib.h>
#include <stdio.h>

struct Person 
{
    char f_name[256];
    char l_name[256];
    int age;
};

int main(int argc, char* argv[])
{
    struct Person* people;
    int people_count;

    printf("How many people would you like to create: ");
    scanf("%i", &people_count);
    people = malloc(sizeof(struct Person) * people_count);  

    int n;
    for (n = 0; n < people_count; n++)
    {
        printf("Person %i's First Name: ", n);
        scanf("%s", people[n].f_name);

        printf("Person %i's Last Name: ", n);
        scanf("%s", people[n].l_name);

        printf("Person %i's Age: ", n);
        scanf("%i", &people[n].age);
    }

    FILE* …
Run Code Online (Sandbox Code Playgroud)

c arrays binary struct file

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

关于C中指针和字符串的问题

可能重复:
C中的char s []和char*s有什么区别?
char*str ="..."和char str [N] ="......"之间的区别?

我有一些令我困惑的代码.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  char* string1 = "this is a test";
  char string2[] = "this is a test";
  printf("%i, %i\n", sizeof(string1), sizeof(string2));
  system("PAUSE"); 
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

当它输出string1的大小时,它打印4,这是预期的,因为指针的大小是4个字节.但是当它打印string2时,它输出15.我认为数组是一个指针,所以string2的大小应该与string1相同吗?那么为什么它为相同类型的数据(指针)打印出两种不同的大小呢?

c arrays string pointers

5
推荐指数
2
解决办法
1344
查看次数

输入文本时调整输入文本字段的大小

是否可以在输入文本时调整文本输入框的大小?我在网上搜索过但没找到任何东西.

html javascript css

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

重用PHP Unix套接字文件

我正在为一个用PHP编码的Web IM客户端后端的IPC系统工作.我正在尝试实现Unix套接字,但是在重用创建的套接字文件时遇到了麻烦.这是在套接字上侦听事件的代码.

<?php

$socket_file = "../tmp/sockets/test.sock";

$socket = socket_create(AF_UNIX, SOCK_STREAM, 0);

socket_bind($socket, $socket_file);
socket_listen($socket);

socket_select($temp = array($socket), $temp = null, $temp = null, 20);

$client = socket_accept($socket);
socket_set_nonblock($client);
$buffer = socket_read($client, 2048);

echo $buffer;

socket_close($client);
socket_close($socket);
Run Code Online (Sandbox Code Playgroud)

当第一次运行此脚本时,它会创建套接字文件test.sock并等待连接.然后当我运行发送脚本时:

<?php

$socket = socket_create(AF_UNIX, SOCK_STREAM, 0);

socket_connect($socket, "../tmp/sockets/test.sock");

$msg = "\nThis is a test\r\n";

socket_write($socket, $msg, strlen($msg));

socket_close($socket);
Run Code Online (Sandbox Code Playgroud)

另一个脚本将输出收到的消息并退出.所以到目前为止所做的一切都按照我的预期进行.问题是,当我尝试重新执行监听脚本时,它会抛出此错误:

Warning: socket_bind() [function.socket-bind]: unable to bind address [98]: Address already in use
Run Code Online (Sandbox Code Playgroud)

如果我跑

rm ~/tmp/sockets/test.sock
Run Code Online (Sandbox Code Playgroud)

然后重新运行listen脚本,它重新创建套接字文件并正常工作.所以我的问题是:无论如何,监听脚本重新连接到现有的套接字文件,并且发送脚本是否可以写入套接字,即使另一个脚本没有连接并监听该套接字文件?我是unix套接字概念的新手,所以任何帮助都将不胜感激!

php unix sockets

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

标签 统计

arrays ×2

c ×2

binary ×1

css ×1

file ×1

html ×1

java ×1

javascript ×1

php ×1

pointers ×1

sockets ×1

string ×1

struct ×1

unix ×1