Pero .. fijate bien .. fopen() abre un "socket" .. un "socket" lo gestiona un "servidor" .. un programa que entregue ese dato por "TPC/IP" .. o el protocolo que corresponda.
Para que en tu caso .. en PC B pudieras acceder a un archivo a el por una llamada por
HTTP://IP/archivo.tal .. tendrías que EJECUTAR en se "PC B" justamente un servidor HTTP .. ¿Tu tienes instalado en ese "PC B" un servidor HTTP? .. a todo esto .. en acceso remoto por el protocolo HTTP NO se puede usar fopen() en modo escritura .. sólo en Lectura (ese es el error que tenías en tus pruebas locales .. pero justamente todo te "funcionaba" por qué tu "servidor" y tu "cliente" era tu mismo PC el cual YA corrias (ejecutabas) un servidor HTTP .. ¿Te fijas?
Un saludo,