有如下简短代码,希望热心朋友给我讲解它(100分)

  • 主题发起人 主题发起人 truest9
  • 开始时间 开始时间
T

truest9

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个屏幕广播的程序中(发送方),有如下代码,我看不懂

procedure TForm1.FormCreate(Sender: TObject);
var
bcd : bool;
begin
WSAStartup($202,asd);
sImage := Socket(AF_INET,SOCK_DGRAM,0);
bcd := True;
SetSockOpt(sImage,SOL_SOCKET,SO_BROADCAST,pchar(@bcd),sizeof(bcd));

Local.sin_family := AF_INET;
Local.sin_port := 0;
Local.sin_addr.S_addr := htonl(INADDR_ANY);

Bind(sImage,Local,sizeof(TSockAddrIn));
Dest.sin_family := AF_INET;
Dest.sin_port := htons(6666);
Dest.sin_addr.S_addr := htonl(INADDR_BroadCast);
end;
 
讲解?要怎么讲解?
 
帮我加上注释,越详细我越容易理解
 
不会吧,我在线等待了一天,没有人帮个忙吗?
要多少分都行,只要能告诉我这些代码的意思就好了
 
你的上面的代码很难读懂,因为没有相关的变量,函数说明
比如:Dest是如何定义的?WSAStartup是一个什么过程?

还有,整个程序是做什么的?
这些都不清楚,怎么看懂你的代码呀?
 
找一些有关winsock的资料看看就知道是什么意思了。
其实是一个很简单的socket程序,但还没完成,还不能进行socket通讯。


procedure TForm1.FormCreate(Sender: TObject);
var
bcd : bool;
begin
WSAStartup($202,asd); //启动winsock,关闭用WSACleanup( );
sImage := Socket(AF_INET,SOCK_DGRAM,0);//创建一个socket
bcd := True;
SetSockOpt(sImage,SOL_SOCKET,SO_BROADCAST,pchar(@bcd),sizeof(bcd));//设置socket属性
//设置server端属性
Local.sin_family := AF_INET;//通讯协议用tcp/ip
Local.sin_port := 0;//端口
Local.sin_addr.S_addr := htonl(INADDR_ANY);//地址

Bind(sImage,Local,sizeof(TSockAddrIn));//对创建好的socket进行绑定,这样就可以调用listen了
//设置client端属性,设置好后可以调用connect连接到server
Dest.sin_family := AF_INET;
Dest.sin_port := htons(6666);
Dest.sin_addr.S_addr := htonl(INADDR_BroadCast);
end;
 
奇怪,delphi对TCP/IP通信的控件封装得很好用啊,为什么还要做得这么繁琐呢?
delphi就是在这方面有优势啊,为何舍长取短?
 
谢谢各位,一起努力!
 
后退
顶部