发布时间:2020-03-03 17:16:52
随着互联网和校园网建设的迅猛发展,校园网在各地雨后春笋般地建立起来,其建设观模和制作水平也相当不错。些学校不但在自己的网靖上存放了很多的教学资源,而目其先进的教学理念和管理乃法也通过网靖得到充分地体现。何将这些好的资源、好的理万法在不只范围内只享,来带动和影侗其它学校,是只教育主管部门急待解决的问颗。而各校都串请名显然不是最好的万法,况目大数学校是宽带上网,拥有的只是一个动IP。如果在各校网靖服务器上运行一《程序,能将所在服务器的动态IP发送到教育局的服务器上,那么全只各校都可以通过教宵局主页实现互访达到资源只享的目的。
貝体万法分三个部分:一是客户端运行程序,负贲将本校信息和动态的公网IP发送到教育局服务器上。另一个是在服务器运行的程序,接收各校发来的息及各自的IP并写入一数据厍。三是在教育网主页加入一段代码,将数括厍包IP地址的信忌反映到主页上,当点市学校名称时直接访问学校的网站。当个别学校更IP地址时,由客F端程序再将新IP发到教育局服务器上。
客户端程序代码:在工稗中加入一个编辑控件,两个按控件,一个客户端控件,分别是
TCIientSocket*ClientSocket1;
TButton*Button 1;TButton*Button2;
TEdit*Edie1;
//然后初始化一
fastcall TForm 1::TForml(TComponent*Owner)
TForm(Owner)
Edit1—>Text="请输入学校名称“
//“连接"按扭,当点击“连接"按扭时完成以下工作
void fastcall TForml::Button1 Click(TObject
*Sender)
AnsiString Server=%0.x·x.x“;//教育局服务器IP
bool Ok=InputQuery("建立连接","请输入主机的地址[P:",Server);if(Server!=
ClientSocket 1一>Active=false;
ClientSocket1一>Address=Server;
ClientSocket1—>Port=xxxx;//教育局服务器端口
ClientSocketI一>Open();//打开端口
//“断开”按扭代码一void fastcall TFonnl::Button2Click(TObject
*Sender)
ClientSocket1一>Close();//断开连接
//应用程序向Socket中写入数据代码一void—fastcall TForml::ClientSocket1 Write(TObject
*Sender,
TCustomWinSocket*Socket)
Socket—>SendText(Edit1—>Text);//向Socket发送数
据,内容是学校名称
//程序退出按扭void fastcall TForml::x 1 Click(TObject*Sender)
Application—>Terminatc 0;
服务器端代码用于接收数据并写入数据库。
加入下绢件.
TMerno*Merno 1;
TScrverSocket*ServerSocket 1;
TButton*Button 1;
TADOTabIe*ADOTable 1;
TDataSource*DataSource 1;TDBGrid*DBGrid1;
//初始化,利用ADO连接数据库一fastcall TForm 1::TForm 1(TComponent*Owner):
TForm(Owner)
ADOTable 1—>ConnectionString Provider
Microsoft.Jet.OLEDB.4.O;Data Source+ExtractFi1ePath
(ParamStr(0)).mdb;Persist Security Info=False";
ADOTable 1—>Active=true;
void—astcall TForm 1::Button 1 Click(TObject
*Sender)
ServerSocket 1—>Active=false;
ServerSocket1—
ServerSocket 1—>Active=true;
void fastcall TForm1::ServerSocket1 ClientRead
(TObject*Sender,
TCustomWinSocket*Socket)
AnsiString yourname;int pos;
TDate today—Date();
TTime time=Time();yourname Socket—>ReceiveText();//*
"+yourname)Memo I—>Lines—>Add("IP:"+Socket
RemoteAddress)
ADOTable1—>Filter=AnsiString name yourname+"'"ADOTable 1—>Filtered=true;
if(ADOTable1
ADOTab1e1—>Edit();
ADOTab1e 1—>Append;
ADOTab1e1->Fie1dByName youmame;("name")—>AsString
ADOTab1e1—>Fie1dByName
Socket—>RemoteAddress;—>AsString
ADOTab1e1—>FieldByName
DateToS tr(today);date"—>AsString
ADOTab1e1->Fie1dByName—>AsString
TimeToStr(time);
ADOTab1e1—>UpdateRecord();
ADOTab1e 1->Filtered=;
Else
ADOTab1e1->Edit();
ADOTab1e1->Fie1dByName
Socket—>RemoteAddress;IP")—>AsString
ADOTab1e 1>FieldByName date")—>AsString
ADOTab1e 1—>FieldByName('f time")—>AsString
TimeToStr(time);
ADOTab1e 1->UpdateRecord();
ADOTab1e1—>Filtered=false;
void _fastcall TForm 1::ServerSocket1 Listen(TObject
*Sender,
TCustomWinSocket*Socket)
Memo I—>Lines—>Add(
void _ßstcall TForrn 1::ServerSocket1 Clientl)isconnect
(TObject*Sender,
TCustomWinSocket*Socket)
Mem01—>Lines—>Add("B,*P!
void __fistcall TForrnl::XI Click(TObject*Sender)
Application—>Terminate();
大客户
微信
置顶