掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ブロッキング接続でエラーがでる (ID:24546)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ソケットのブロッキング接続で、エラーが出て困っています。 エラー内容は「EAccesViolationクラスの例外を生成しました。 Acces violation at address00000013. Read of address」 と言った内容です。 サーバー側のスレッド部分のソースです。 Type TRead=Class(TServerClientThread) procedure ClientExecute; override; End; implementation procedure Tread.ClientExecute; const bSize:Integer=1000; var fStream:TFileStream; pStream:TWinSocketStream; buff:Array [0..1000] of Char; iReadSize:Integer; begin //ファイルストリームを作成 fStream:=TFileStream.Create('D:\TEST.bmp',fmCreate); While (not Terminated) and ClientSocket.Connected Do begin Try //ソケットストリームを作成 pStream:=TWinSocketStream.Create(ClientSocket,60000); Try If pStream.WaitForData(60000) Then begin Fillchar(buff,Sizeof(buff),0); //受信 iReadSize:=pStream.Read(buff,bSize); If iReadSize=0 Then ClientSocket.Close; //ファイルに書き込む fStream.Write(buff,iReadSize); End; Finally pStream.Free; End; Finally fStream.Free; End; end; クライアント側は fStream:=TFileStream.Create('C:\Send.bmp',fmOpenRead); pStream:=TWinSocketStream.Create(ClientSocket1.Socket,6000); pStream.CopyFrom(fStream,0); fStream.Free; こんな感じで送ってます。 環境はDelphi6Personalです。 ご教授お願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.