【发布时间】:2012-08-05 00:46:07
【问题描述】:
我有一个与服务器和客户端程序的简单 TCP 连接。 我在服务器和客户端都做了一个简单的结构来作为消息传递:
struct {int c; char** v;} msg;
我只是想从客户端发送 argc 和 argv(来自终端的输入):
int main(int argc, char **argv){
...
msg.c = argc;
msg.v = argv;
sendto(Socket, &msg, sizeof(msg), 0, (struct sockaddr *)&input, sizeof(input));
但是当发送到服务器时,我可以调用 msg.c 来获取号码,我可以使用它 但如果我尝试使用字符串数组,则会出现段错误:
recvfrom(Socket, &msg, sizeof(msg), 0, (struct sockaddr *)&input, &sizep);
printf("%d\n", msg.c);
printf("%s\n", msg.v[2]);
我只用一个char * 尝试过这个,我也无法发送字符串。
我做错了什么?
【问题讨论】:
标签: c sockets tcp segmentation-fault