本帖最后由 adventurous 于 2011-10-29 20:47:12 编辑

解决方案 »

  1.   

    可以写啊,把localhost换成对方的IP地址
      

  2.   

    构造socket的时候,把localhost换成对方的主机名或者是ip地址
      

  3.   

    不管局域网还是什么网道理是一样的吧?
    socket 因该本质上应该包括 对方的ip 和 port 和 你自己的ip 和port 。
    传东西就像 邮寄东西一样,要知道对方的地址和门牌号啊,ip 和 port 就起着这样的作用吧~
    public Socket(String host, int port)
    你把socket绑定到 对方的ip port就可以了~
      

  4.   


    你不是C/S 架构的吗?装到其他电脑的是做Client 客户端的,你肯定有个服务端Server啊! 客户端绑定你的服务端的ip port ,也就是只需知道你那台 服务器server端机子的ip 就可以了啊!Server端监听就可以了~
      

  5.   


    但是我还要给Client端传消息,就必须知道他的ip和地址,如果Client给我传消息,我要回复怎么办?
      

  6.   

    一端:serverSocket = new ServerSocket(port);               
          Socket clientSocket = serverSocket.accept();                                                           
           sockets.add(clientSocket); 
    另一端:socket = new Socket("ip", port);
      

  7.   

    你想一下客户端既然给你发来信息了,那么必定带着它的ip
    socket=server.accept();
        System.out.println("客户端信息:"+socket.getRemoteSocketAddress());
      

  8.   

    问题是客户端第一次发请求的时候要知道我的IP地址,但我用的是路由器,IP好像是动态变化的,怎么办?
      

  9.   

    申请一个动态域名,比如花生壳什么的,让他连那个域名就可以了,DNS会动态解析这个域名的,一般都是这么搞
      

  10.   


    public byte[] Socket(){
    string ip="192.168.0.1";  //设置服务器IP
    int listenPort = 6666;   //设置监听的端口
    //创建Tcp监听器
    TcpListener listener = new TcpListener(ip,listenport); 
    //创建Socket
    Socket socket = listener.AcceptSocket();
    //创建byte[]接收请求
    byte[] buffer=new byte[1024];
    //使用Socket的Receive方法获得请求;
    socket.Receive(buffer);
    return buffer;
    }
    private byte[] TcpClient() {
    string ip="192.168.0.1";  //设置服务器IP
    int listenPort = 6666;   //设置端口
    //创建客户端Socket,并连接服务器
    TcpClient tcpClient = new TcpClient(ip, listenPort);
    //创建NetWorkStream,用来操作数据流
    NetWorkStream networkStream = tcpClient.GetStream();
    string command = "你需要传递的内容";
    //对发送的内容进行转换
    byte[] buffer = System.Text.Encoding.UTF8.GetBytes(command.ToCharArray());
    //将发送内容写入网络流发送至服务器
    networkStream.Write(outbytes, 0, outbytes.Length);
    //接收返回内容
    byte[] outbytes = new byte[2048];
           networkStream.Read(buffer, 0, buffer.Length);
    return outbytes;
    }
      

  11.   

    你要将服务器端的IP固定,申请个域名或者在路由器上将你的IP对外暴露(这样既不安全,易受攻击)