线程Socket传送文件的客户端和服务端源代码
来源:互联网 发布:韩子高网络剧百度云 编辑:程序博客网 时间:2024/05/22 00:46
·线程Socket传送文件的客户端和服务端源代码
2005/06/07 22:34
一.客户端:
1.Form上放一个ClientSocket1,OpenDialog1,button1
2.ClientSocket1属性设置:
Active : False
ClientType : ctBlocking
Host : '127.0.0.1'
Port : 5998
3.button1事件:
procedure TForm1.Button1Click(Sender: TObject);
Var
s : TWinSocketStream;
f : TFileStream;
begin
If Not OpenDialog1.Execute Then Exit;
ClientSocket1.Open;
s := TWinSocketStream.Create(ClientSocket1.Socket, 60000);
f := TFileStream.Create(OpenDialog1.FileName, fmShareDenyWrite);
Try
s.CopyFrom(f, 0);
Finally
s.Free;
f.Free;
ClientSocket1.Close;
End;
end;
----------------------------------------------
二.服务端:
1.Form上放一个ServerSocket1
2.ServerSocket1属性设置:
Active : True
Port : 5998
ServerType : stThreadBlocking
3.定义客户端线程类:
TClientThread = Class(TServerClientThread)
Private
Public
Procedure ClientExecute; override;
End;
Procedure TClientThread.ClientExecute;
Var
ReceiveBuffer : Array[0..4095] Of Char;
SocketStream : TWinSocketStream;
BytesRead : Integer;
F : TFileStream;
Begin
While Not Terminated And ClientSocket.Connected Do
Begin
try
SocketStream := TWinSocketStream.Create(ClientSocket, 60000);
F := TFileStream.Create('c:/afile.exe', fmCreate);
try
FillChar(ReceiveBuffer, 10, 0);
If SocketStream.WaitForData(5000) Then
Repeat
BytesRead := SocketStream.Read(ReceiveBuffer,SizeOf(ReceiveBuffer));
if BytesRead = 0 then
ClientSocket.Close
Else
F.WriteBuffer(ReceiveBuffer, BytesRead);
Until Not SocketStream.WaitForData(2000);
finally
SocketStream.Free;
ClientSocket.Close;
f.Free;
end;
except
end;
End;
End;
4.ServerSocket1的OnGetThread事件代码:
procedure TForm1.ServerSocket1GetThread(Sender: TObject;
ClientSocket: TServerClientWinSocket;
var SocketThread: TServerClientThread);
begin
SocketThread := TClientThread.Create(False, ClientSocket);
end;
----------------------------------------------
1.Form上放一个ClientSocket1,OpenDialog1,button1
2.ClientSocket1属性设置:
Active : False
ClientType : ctBlocking
Host : '127.0.0.1'
Port : 5998
3.button1事件:
procedure TForm1.Button1Click(Sender: TObject);
Var
s : TWinSocketStream;
f : TFileStream;
begin
If Not OpenDialog1.Execute Then Exit;
ClientSocket1.Open;
s := TWinSocketStream.Create(ClientSocket1.Socket, 60000);
f := TFileStream.Create(OpenDialog1.FileName, fmShareDenyWrite);
Try
s.CopyFrom(f, 0);
Finally
s.Free;
f.Free;
ClientSocket1.Close;
End;
end;
----------------------------------------------
二.服务端:
1.Form上放一个ServerSocket1
2.ServerSocket1属性设置:
Active : True
Port : 5998
ServerType : stThreadBlocking
3.定义客户端线程类:
TClientThread = Class(TServerClientThread)
Private
Public
Procedure ClientExecute; override;
End;
Procedure TClientThread.ClientExecute;
Var
ReceiveBuffer : Array[0..4095] Of Char;
SocketStream : TWinSocketStream;
BytesRead : Integer;
F : TFileStream;
Begin
While Not Terminated And ClientSocket.Connected Do
Begin
try
SocketStream := TWinSocketStream.Create(ClientSocket, 60000);
F := TFileStream.Create('c:/afile.exe', fmCreate);
try
FillChar(ReceiveBuffer, 10, 0);
If SocketStream.WaitForData(5000) Then
Repeat
BytesRead := SocketStream.Read(ReceiveBuffer,SizeOf(ReceiveBuffer));
if BytesRead = 0 then
ClientSocket.Close
Else
F.WriteBuffer(ReceiveBuffer, BytesRead);
Until Not SocketStream.WaitForData(2000);
finally
SocketStream.Free;
ClientSocket.Close;
f.Free;
end;
except
end;
End;
End;
4.ServerSocket1的OnGetThread事件代码:
procedure TForm1.ServerSocket1GetThread(Sender: TObject;
ClientSocket: TServerClientWinSocket;
var SocketThread: TServerClientThread);
begin
SocketThread := TClientThread.Create(False, ClientSocket);
end;
----------------------------------------------
- 线程Socket传送文件的客户端和服务端源代码
- Android 手机间的文件传送(socket手机做服务端和客户端进行)
- c语言实现socket服务端/客户端通过tcp传送文件
- python socket上传文件的服务端和客户端实现
- python socket上传文件的服务端和客户端实现
- Python socket 上传文件的服务端和客户端
- Python socket上传文件的服务端和客户端实现
- GUI界面,客户端向服务端传送文件
- 简单的Socket通信客户端和服务端
- 基于UDP的socket 客户端和服务端
- 广域网的socket服务端和客户端
- socket通讯 客户端和服务端
- nodejs socket 服务端和客户端
- nodejs socket 服务端和客户端
- Socket服务端和客户端通信
- socket服务端和客户端通信
- Socket客户端和服务端通讯
- Socket的通讯收发文件数据(含服务端和客户端)
- 创建用于 ASP.NET 的分页程序控件
- 我只想尽自己的本份
- 服务级后门自己做
- 工作感悟
- Beginner's introductory guide to writing,installing,starting,stopping NT services
- 线程Socket传送文件的客户端和服务端源代码
- 用iXMLDocument 接口实现TXMLDocument 无 owner的创建。
- [原创]Eclipse3.0.1+Lomboz3.0.1+EMF2.0.1+Tomcat 5.0.30 JSP开发环境搭建实战记录
- ASP.NET 服务器控件授权
- .NET 框架安全性概述
- ASP.NET如何存取SQL Server数据库图片
- 求助,DataGrid中实现鼠标移到某一行时该行颜色改变时遇到的问题
- 在VMWARE 客户机和主机操作系统之间共享文件
- Google优化技术解释