1.改connect的对象IP就可以了。Ex:IPsaServer.sin_addr.s_addr = inet_addr( "192.168.1.1" )
但请确定远端有用相同的IP与port在进行listening。
2.我没有看程式内容,不过一般client你是不需要指定IP给他的,只有server在进行bind与listening的时候,你需要指定IP。所以当你client要连向server的时候,你的确是要指定server IP给client,不然client是不知道server的IP是多少。除非client内部有server的清单,或是client可自动去寻找server,这样才不用指定IP给他。
3.我不是c++的强的高手,只是个打杂小弟而已,只是刚好最近也在碰这些东西。其实档案也是由一堆文字(ASCII)或数值(binary)所组成的。所以你只要会传字串,那么传档就只是把档案内的文字读进来,然后将其当字串传出就好。然后再接收端写入到所指定的档案内即可。当然Binary也是可以用相同的方式去做,且binary的传档方式会比较通用,可支援各种格式的档案。
唯一要注意的是读写档与资料传输时如有发生遗失的例外处理,其他的就与一般常用的传字串的方式一样。
在c++底下,winsock的send与receive并没有将string与binary分开(以前玩VB的时候印象VB.net有将Sendstring与Sendbinary分成两个函式来使用)。所以只需将您所要传输的资料cast成char*给send就可以了。
这边要传档的话,会建议您使用struct来传那些资料,这样在处理上也会比较方便。至于要怎么把struct丢给send用的话,一样用cast (char*)就可以了。
因为最近被压榨的很严重,所以就没办法提供sample了。
希望对您有帮助