Может ли кто-нибудь предложить мне руку помощи?
Я пытаюсь отправить 2d-массив символов с сервера на клиент,но это не работает, он ничего не печатает на клиенте.Я использую протокол TCP/IP.Не могли бы вы помочь мне с каким-нибудь кодом?
Что я уже пробовал:
************SERVER********* char arr[20][20]; int i,j; for(i=0;i<20;i++){ for(j=0;j<20;j++){ send(sock,&arr[i][j],sizeof(char),0); } } *******CLIENT*************************** char arr[20][20]; int i,j; for(i=0;i<20;i++){ for(j=0;j<20;j++){ recv(sock,&arr[i][j],sizeof(char),0); printf("%s",arr[i][j]); } }
Afzaal Ahmad Zeeshan
Конечно,
Как вы подключаетесь или устанавливаете соединение по протоколу TCP/IP? Можете ли вы поделиться точками входа для этих двух программ?
Member 14825085
Это просто типичное соединение tcp/ip, а не что-то особенное, братан
jeron1
Итак, вам удалось установить соединение TCP/IP?
Member 14825085
Да я уже отправлял несколько простых сообщений и отлично работал
jeron1
Возвращаемое значение из функции send () - это то, что вы ожидаете?
Member 14825085
Да я проверяю это
jeron1
Может быть, вы могли бы попробовать Форматировать как символ, а не строку, в вашем случае
заявление printf? (%c вместо %s)
0x01AA
Теперь трудно помочь, что вы исключаете и что получаете?
На первый взгляд я бы сказал, что вы путаете индексы. Вы заявляете: i
и j
но после этого вы используете во внешнем и внутреннем for
только оба раза i
..- это не может кончиться хорошо ;)
Member 14825085
Извините, что это была моя ошибка при копировании, это я в первом цикле и j во втором. Я ожидаю, что клиент распечатает массив, который я отправляю с сервера
0x01AA
Затем, пожалуйста, исправьте код в вашем вопросе, используя "улучшить вопрос"
Member 14825085
Ладно извини за это
0x01AA
Не нужно извиняться, просто исправьте это ;)
RickZeeland
Вы используете Windows или Linux ?
0x01AA
Почему, извините за вопрос? Но отличаются ли сокеты windows и linux для необработанных данных?
Заранее Вам большое спасибо.
RickZeeland
Это скорее вопрос включенных библиотек, например, для Windows вы можете включить Winsock2.h. Излишне говорить, что это не будет компилироваться для Linux.
Member 14825085
Линукс