首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

socket匪夷所思啊 生手求指教

2014-06-02 
socket匪夷所思啊新手求指教 客户端 send第一次比如send个用户名 客户端再send第二次send个密码 服务端rec

socket匪夷所思啊 新手求指教
 客户端 send第一次   比如send个用户名
 客户端再send第二次  send个密码

 服务端  receive第一次 
         receive第二次
 服务端第一次接收到的一定是客户端第一次send的内容么  即用户名
 
 难道不会receive一下 把客户端俩次send的内容 即把用户名和密码都给接收完了?
这是客户端的代码
   
C# code
 // 给服务器发送要传送的文件名
                    byte[] filenameByte = new byte[256];
                    filenameByte = Encoding.Default.GetBytes(fileName);
                     
 
                    netStream.Write(filenameByte, 0, filenameByte.Length);
                    netStream.Flush();
                    // 给服务器传送需要文件发送的次数
                    //netStream.Write(Encoding.Unicode.GetBytes(times_tobesended.ToString()), 0, Encoding.Unicode.GetBytes(times_tobesended.ToString()).Length);
                    // 给服务器发送总的文件大小
                    byte[] tempb = Encoding.Default.GetBytes(fileSize.ToString());
 
                    netStream.Write(Encoding.Default.GetBytes(fileSize.ToString()), 0, Encoding.Default.GetBytes(fileSize.ToString()).Length);
                    netStream.Flush();

  这是服务器端接收的代码

    
C# code

  byte[] fileBuffer = new byte[fileBuffer_eachTime_sended];
                                        byte[] fileNameBuffer = new byte[256];
                                        // 接收文件名 


                                        clientSocket.Receive(fileNameBuffer);
                                        string fileName = Encoding.Default.GetString(fileNameBuffer).TrimEnd('\0');
                                        //// 接收要传送的次数
                                        //byte[] times_byte = new byte[8];
                                        //clientSocket.Receive(times_byte);
                                        //string temp = Encoding.Default.GetString(times_byte).TrimEnd('\0');
                                        //int number_of_receive = int.Parse(temp);
                                        // 接收总的文件大小
                                        byte[] fileSize_byte = new byte[16];
                                        clientSocket.Receive(fileSize_byte);
                                        string fileSize_string = Encoding.Default.GetString(fileSize_byte).TrimEnd('\0');


                                        long sumFileSize = Convert.ToInt32(fileSize_string, 10);

最后一行会报错 
而且string fileName = Encoding.Default.GetString(fileNameBuffer).TrimEnd('\0');
filename的取到的值为"示例图片_02.jpg123777

热点排行