2011-04-25 114 views
0

即時通訊試圖發送一個簡單的套接字程序中的2D數組..但這隻發送第一行,並沒有任何超越/ ....這裏有什麼問題......?套接字在c tcp

服務器的一部分...

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); 
+0

它幫助。以大寫字母開頭的句子,有助於以一個標點符號結尾:'。'或'?'請**更新**您的問題,使其英文看起來不錯,以便其他人可以輕鬆閱讀,理解和幫助。 – 2011-04-25 18:49:40

回答

4

你知道這些是什麼:

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

呢? j初始化只是一次(:

所以,一旦j得到3i = 0,當i = 1i = 2j仍然3,不執行第二for,這就是爲什麼你只發送第一行

+0

這樣一個愚蠢的錯誤...大聲笑..非常感謝... – Pawan 2011-04-25 18:43:57

+0

不要擔心,它發生了很多,不客氣(: – 2011-04-25 18:45:12