Это основной вопрос. Я завершаю семантику API сокета, как показано ниже.
bind() - where I am
connect() - where I want to send message
Если я хочу наложить ограничение на то, чтобы Том и Джерри разговаривали через следующее фиксированное соединение:
Tom's IP:Tom's Port <--> Jerry's IP:Jerry's Port
Я должен вызвать bind () с обеих сторон, чтобы установить их соответствующий сокет. Правильно?
И в следующем коде я явно не связывал () с new_socket ,
new_socket = accept(listen_socket, (struct sockaddr*)&remote_addr, &addr_size);
send_data(new_socket);
recv_data(new_socket);
Но когда я отправляю и получаю данные через new_socket, он все еще использует IP-адрес и номер порта, который я связываю () с прослушивающим сокетом. Эта информация неявно копируется системой в new_socket?
Если new_socket и listen_socket связаны с одним и тем же IP-адресом и портом, как система может отличить их друг от друга?
Спасибо!