procedure tform1.onshow(view:TListView;clientinfo:tclientinfo);
var hlist:TListItem;
begin
hlist:=view.Items.Add;
hlist.Caption:=clientinfo.psip+':'+inttostr(clientinfo.wport);
hlist.SubItems.Add('');
hlist.SubItems.Add(clientinfo.szcommand);
end;
procedure TForm1.startserver(Sender: TObject);
var ra:sockaddr_in;//record类型
begin
server:=socket(PF_INET,SOCK_STREAM,IPPROTO_IP);
if (server=invalid_socket) then
begin
StatusBar1.SimpleText:='创建发送socket错误';
Exit;
end
else
ra.sin_family:=PF_INET;
ra.sin_port:=htons(80);//端口
ra.sin_addr.S_addr:=INADDR_ANY;
if (bind(server,ra,SizeOf(ra))=socket_error) then
begin
statusbar1.SimpleText:='绑定socket错误';
exit;
end
else
listen(server,5);
StatusBar1.SimpleText:='服务器已经启动';
end;procedure TForm1.FormCreate(Sender: TObject);
var aw:TWSAData;
begin
if WSAStartup($0101,aw)<>0 then
begin
MessageBox(Handle,'不能启动动态链接库winsock','错误',mb_ok);
Exit;
end
else
messagebox(self.handle,aw.szdescription,'winsock版本',mb_ok);
end;
procedure TForm1.N6Click(Sender: TObject);
const:blocklen=1024*4;//能发送的最大缓存
var
ftrans:file of Byte;
filesize:integer;
sendbuf:array[0..blocklen-1]of Byte; //发送文件的缓存
sendsocket:TSocket;
se:sockaddr_in;
se_len:Integer;
begin
se_len:=SizeOf(se);
sendsocket:=accept(server,@Se,@se_len);
filesize:=send(server,sendbuf[0],blocklen);
Application.ProcessMessages;
CloseFile()
end;
var hlist:TListItem;
begin
hlist:=view.Items.Add;
hlist.Caption:=clientinfo.psip+':'+inttostr(clientinfo.wport);
hlist.SubItems.Add('');
hlist.SubItems.Add(clientinfo.szcommand);
end;
procedure TForm1.startserver(Sender: TObject);
var ra:sockaddr_in;//record类型
begin
server:=socket(PF_INET,SOCK_STREAM,IPPROTO_IP);
if (server=invalid_socket) then
begin
StatusBar1.SimpleText:='创建发送socket错误';
Exit;
end
else
ra.sin_family:=PF_INET;
ra.sin_port:=htons(80);//端口
ra.sin_addr.S_addr:=INADDR_ANY;
if (bind(server,ra,SizeOf(ra))=socket_error) then
begin
statusbar1.SimpleText:='绑定socket错误';
exit;
end
else
listen(server,5);
StatusBar1.SimpleText:='服务器已经启动';
end;procedure TForm1.FormCreate(Sender: TObject);
var aw:TWSAData;
begin
if WSAStartup($0101,aw)<>0 then
begin
MessageBox(Handle,'不能启动动态链接库winsock','错误',mb_ok);
Exit;
end
else
messagebox(self.handle,aw.szdescription,'winsock版本',mb_ok);
end;
procedure TForm1.N6Click(Sender: TObject);
const:blocklen=1024*4;//能发送的最大缓存
var
ftrans:file of Byte;
filesize:integer;
sendbuf:array[0..blocklen-1]of Byte; //发送文件的缓存
sendsocket:TSocket;
se:sockaddr_in;
se_len:Integer;
begin
se_len:=SizeOf(se);
sendsocket:=accept(server,@Se,@se_len);
filesize:=send(server,sendbuf[0],blocklen);
Application.ProcessMessages;
CloseFile()
end;
解决方案 »
- 为什么程序的图标无法改变?
- 总是提示出错:“标准表达式中数据类型不匹配”,大家来帮忙分析下吧
- 关于fastreport的简单问题
- 有点难,期望熟悉WINDOWS底层的朋友来看看,用到API什么的,不过我不是很清楚,就是直接调用WINDOWS的.................
- 求助怎么将简体的DELPHI7程序转换为繁体的程序?除了改变文字外还需要作其它设置吗?
- 求助:在多文档MDI上,如何把一条记录传到另一个子窗体上并编辑它
- 如何实现联众游戏一样的程序(300分)
- 请问如何打开PDF类型文件?
- 在别的论坛看到的,拿来讨论一下
- 请教高手一个通用的问题?!!!!!!
- 在百度MP3下载的路径都是加密的(路径中带省略号),怎么在Delphi中用idhttp下载获得正确的路径,用什么控件?最好有源代码,能解析出歌曲的名字。
- 想在程序运行后可以让用户自己调节列表控件的整体宽度,怎么做?
2. filesize:=send(server,sendbuf[0],blocklen);
=>filesize:=send(sendsocket,sendbuf[0],blocklen);
http://blog.csdn.net/bdmh/archive/2010/08/31/5853121.aspx
上面链接里,你把发送到改为发送流即可