1) Скажем, один компьютер - сервер, а другой - клиент.Теперь, должен ли серверный код находиться на сервере, а клиентский код на клиентском?
Не думаю, что я понимаю это в правильной перспективе ... lol.Если ваш клиентский код находится на стороне сервера, как вы могли бы выделить какие-либо участки памяти или вызвать что-то на клиентском компьютере?
2) В коде сервера, когда мы предоставляем ip-адрес для bind (), это должен быть ip-адрес системы, который мы можем найти через ipconfig, или он должен оставаться адресом обратной связи ??
что мы имеем на странице man:
int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
"bind () назначает адрес, указанный в addr, сокету, указанному дескриптором файла sockfd.addrlen указывает размер в байтах структуры адреса, на которую указывает addr. Традиционно эта операция называется «назначением имени сокету». Обычно необходимо назначить локальный адрес с помощью bind (), прежде чем сокет SOCK_STREAM можетполучать соединения (см. accept (2)). "
В вашем случае, я полагаю, 127.0.0.1 - это то, что вы ищете. В двух словах, адрес, о котором вы говорили, скорее всего будетВы устанавливаете структуру server_addr.
3) Я полагаю, что в коде клиента IP-адрес получателя должен быть адресом серверного компьютера, верно ??
Да.
4) И последнее и самое важное, КАК ПОДКЛЮЧИТЬ ДВА КОМПЬЮТЕРА ??
Походит на классическое приложение для чата.Насколько я знаю (я новичок ...), программирование и API UDP (User Datagram Protocol) стоит попробовать, вероятно. Если вы хотите придерживаться TCP / IP, два произвольных компьютера по существу не подключаются к каждомудругие, но оба держатся за сервер, и сервер станет краеугольным камнем между ними.
Более того, я заглянул в страницу руководства по сокетам:
int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
«Системный вызов connect () соединяет сокет, на который ссылается дескриптор файла sockfd, с адресом, указанным в addr. Аргумент addrlen указывает размер адреса. Формат адреса в адресе определяется адресным пространством сокета.sockfd; см. socket (2) для более подробной информации. "
Я думаю, что это объясняет ваш вопрос теоретически.