2011-04-25 112 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