【发布时间】:2011-11-20 05:51:27
【问题描述】:
这一直让我很生气,原因是我缺乏 c/c++ 经验。
我不知道如何从另一个线程中读取字符串。在这种情况下,线程来自连接到服务器线程的客户端。我已经能够毫无问题地传递整数。但是似乎无法弄清楚如何传递字符串。
从控制台读取字符串并需要发送到服务器的客户端:
cout << "Enter in an operation and number: \n ";
int x;
char str[20];
int len = strlen(str);
int result;
cin>>str;
cin>>x;
write(client_sock, &len, sizeof(int));
write(client_sock, str, len);
write(client_sock, &x, sizeof(x));
read(client_sock, &result, sizeof(result));
cout<<result;
需要读取字符串的服务器端,为了进行测试,我正在尝试将其发送回来,但是我需要将其读取并将其与其他条件进行比较以对读取的数字执行操作。
int result;
int input;
int len;
char str;
read(client_sock, &input, sizeof(input));
read(client_sock,&len,sizeof(len));
char buf[sizeof(len)];
sscanf(buf, "%s", &str);
cout<<str;
result= input*input;
write(client_sock,&result,sizeof(result));
write(client_sock, buf, strlen(buf));
当然这是一项任务,我的教授告诉我将字符读入缓冲区并以空值终止它。我不确定他的 null 终止是什么意思。我是否也正确地读入了缓冲区?
【问题讨论】: