розетки в c tcp - PullRequest
       9

розетки в c tcp

0 голосов
/ 25 апреля 2011

я пытаюсь отправить 2d массив в простой программе сокетов ... но это только отправляет первую строку и никогда ничего больше / .... в чем проблема ...?

серверная часть...

struct sockaddr_in clienta,servera;
int s ;
s = socket(AF_INET,SOCK_STREAM,0);
servera.sin_family = AF_INET;
servera.sin_port = htons(3386);
servera.sin_addr.s_addr = htonl(INADDR_ANY);
bind(s,(struct sockaddr *)&servera,sizeof(servera));
listen(s,1);
int news;
int len = sizeof(clienta);
printf("waiting for connection");
news = accept(s,(struct sockaddr *)&clienta , &len);
printf("\n received connection");
int c[3][3];
recv(news, &c,sizeof(c),0);
int d = sizeof(c);
int i=0,j=0;
for(;i<=2;i++)
    for(;j<=2;j++)
        printf("\n %i,%i,%i",i,j,c[i][j]);
printf("\n %i",c[1][0]);

вот клиентская программа

    struct sockaddr_in servera;
int s ;
s = socket(AF_INET,SOCK_STREAM,0);
servera.sin_family = AF_INET;
servera.sin_port = htons(3386);
servera.sin_addr.s_addr = inet_addr("127.0.0.1");
connect(s,(struct sockaddr *)&servera, sizeof(servera));
int b[3][3];
int i=0,j=0;
for(;i<3;i++)
    for(;j<3;j++)
        b[i][j]=4;

printf("connected");
send(s,&b,sizeof(b),0);
int l = sizeof(b);

1 Ответ

4 голосов
/ 25 апреля 2011

Вы знаете, что это:

for(;i<=2;i++)
    for(;j<=2;j++)
        printf("\n %i,%i,%i",i,j,c[i][j]);

и

for(;i<=2;i++)
    for(;j<=2;j++)
       printf("\n %i,%i,%i",i,j,c[i][j]);

делать? j инициализируется только один раз (:

Итак, однажды j получает 3 на i = 0, когда i = 1 и i = 2 j все еще 3, а второй for не выполняется, поэтому вы отправляете только первый ряд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...