问题描述
希望同看传智播客视频的朋友给我答疑解惑啊就是客户端向服务端发送文件的时候当收个比特数组为1就是文件传输假设客户端发的是向服务端发文件下面是服务端代码接受方法新起一个线程传入套接字sok为1文件传输注释两行应该会跳出保存窗口的但是怎么不跳出呢voidrec(objectsok){while(true){Socketwarch=(Socket)sok;byte[]ar=newbyte[1024*1014*2];intlength=warch.Receive(ar);if(ar[0]==0){OpenFileDialogofd=newOpenFileDialog();ofd.ShowDialog();stringc=System.Text.Encoding.UTF8.GetString(ar,1,length-1);mess(c);}elseif(ar[0]==1){//SaveFileDialogsfd=newSaveFileDialog();//if(sfd.ShowDialog()==DialogResult.OK){stringst=sfd.FileName;using(FileStreamsss=newFileStream(st,FileMode.Create,FileAccess.Write)){sss.Write(ar,1,length-1);mess("ok"+st);}}}
解决方案
解决方案二:
DEBUG下
解决方案三:
是执行else还是if里的东西啊
解决方案四:
唉晕死是win7和xp的编程差异。。win7里面线程里调用SaveFileDialog要把线程设置为Threadthr=newThread(rec);thr.SetApartmentState(ApartmentState.STA);在此结贴
解决方案五:
多谢。我也遇到这个问题了。