我刚学Socket,我是在一台机子上测试,分客户端和服务器端,服务器端处于监听状态,接受byte[100],客户端把一个TextBox的数据转换称byte,然后发送,问题在这,客户机 发 aaaa  服务器接  aaaa,再发一次 ss服务器接ssaa,它第2次发送的数据只是替换,关键的代码为:          客户端 byte[] b2;
                socket.Connect(服务器IP);
        b2=null;
                b2=EnCoding.ASCII.GetBytes(textBox1.text);
                socket.Send(b2);
                socket.Shutdown(SocketShutdown.Both);
                socket.Close();         服务器 byte[] b2=new byte[100];
                 Socket.Bind(IP);
                 Socket.Listen(5);
                 Socket newsocket=Socket.Accept();
                 newsocket.Receive(b2);
还有个问题是,我再别的机子上运行客户端或者服务端的话,都是找不到库,那是不是意味着只有装了.net Framework sdk的机子才能运行?那不是移植性很不好.

解决方案 »

  1.   

    .net的程序必需要装.net framework 的
      

  2.   

    微软为了便于移植,才推出.net的,比如jave,你不会认为它的移植性不好,只是现在.net的普及还不是很高而已
      

  3.   

    第一个问题呢?高手快点给我解决下,有精通这方面的高手码?或者解释下怎么清空接受端的 byte
      

  4.   

    to 1
    int nReceiveBytes = newsocket.Receive(b2);// Use the return value as parameterstring strText = EnCoding.ASCII.GetString( b2, 0, nReceiveBytes );//Create string using specific length
      

  5.   

    to 还有个问题是,我再别的机子上运行客户端或者服务端的话,都是找不到库,那是不是意味着只有装了.net Framework sdk的机子才能运行?那不是移植性很不好..net编写的程序,必须在安装了.net Framework机器上才能运行,而且如果要访问数据库之类的,还必须安装mdac2.7以上版本。