98下服务器端要装拨号服务器(在添加/删除程序中有),客户端用ras拨号。如: function MyDial() : bool; var hRas: THRasConn; //dialparams: TRasDialParams; r: integer; c: Array[0..100] of Char; dialOK: bool; entry: TRasEntry; begin dialOK := true; FillChar(form1.dialparams, SizeOf(TRasDialParams), 0); with form1.dialparams do begin dwSize := Sizeof(TRasDialParams); StrPCopy(szEntryName, entryName); StrPCopy(szUserName, userName); StrPCopy(szPassword, userKey); // You can override phone number here... // StrPCopy(szPhoneNumber, 'xxxxxx'); end; Form1.StatusBar1.SimpleText := '正在拨号...'; hRas := 0; r := RasDial(nil, // This field is ignored in Windows95 nil, // Phonebook: use default (not used on Win95) form1.dialparams, 0, // use callback function of type RASDIALFUNC nil,//@RasCallback, // callback function hRas); if r <> 0 then begin dialOK := false; RasGetErrorString(r, c, 100); Form1.StatusBar1.SimpleText := '拨号连接失败: ' + c; end else begin Form1.StatusBar1.SimpleText := '拨号已连接'; form1.SocketConnection1.ServerName := 'Project1.socketServer'; end; result := dialOK; end;procedure DialHangup(); var hRas: THRasConn; bufsize: Longint; numEntries: Longint; entries: Array[1..100] of TRasConn; stat: TRasConnStatus; begin with Form1 do begin SocketConnection1.ServerName :=''; //sleep(2000); entries[1].dwSize := SizeOf(TRasConn); bufsize := SizeOf(TRasConn) * 100; FillChar(stat, Sizeof(TRasConnStatus), 0); stat.dwSize := Sizeof(TRasConnStatus); hRas := RasEnumConnections(@entries[1], bufsize, numEntries); RasGetConnectStatus(entries[1].hrasconn, stat); if RasHangUp(entries[1].hrasconn) = 0 then begin Form1.StatusBar1.SimpleText := '拨号已断开'; Sleep(1000); // wait 1 second end else Form1.StatusBar1.SimpleText := '拨号挂断失败!'; //ShowMessage('拨号挂断失败!'); end; end;
这样的软件也很多,网上搜一下吧。如果是2000/xp就更加简单了,本身就支持拨号连接
不太明白你的意思,怎么个“用一个modem拨号连接另外一个就可以了”?假设不是在公司内部的分机呢?怎么处理。我是说用程序来控制传输文件。帮楼主up一下,如楼主有了这问题的答案,望不吝赐教。
function MyDial() : bool;
var
hRas: THRasConn;
//dialparams: TRasDialParams;
r: integer;
c: Array[0..100] of Char;
dialOK: bool;
entry: TRasEntry;
begin
dialOK := true;
FillChar(form1.dialparams, SizeOf(TRasDialParams), 0);
with form1.dialparams do
begin
dwSize := Sizeof(TRasDialParams);
StrPCopy(szEntryName, entryName);
StrPCopy(szUserName, userName);
StrPCopy(szPassword, userKey);
// You can override phone number here...
// StrPCopy(szPhoneNumber, 'xxxxxx');
end;
Form1.StatusBar1.SimpleText := '正在拨号...';
hRas := 0;
r := RasDial(nil, // This field is ignored in Windows95
nil, // Phonebook: use default (not used on Win95)
form1.dialparams,
0, // use callback function of type RASDIALFUNC
nil,//@RasCallback, // callback function
hRas);
if r <> 0 then
begin
dialOK := false;
RasGetErrorString(r, c, 100);
Form1.StatusBar1.SimpleText := '拨号连接失败: ' + c;
end
else
begin
Form1.StatusBar1.SimpleText := '拨号已连接';
form1.SocketConnection1.ServerName := 'Project1.socketServer';
end;
result := dialOK;
end;procedure DialHangup();
var
hRas: THRasConn;
bufsize: Longint;
numEntries: Longint;
entries: Array[1..100] of TRasConn;
stat: TRasConnStatus;
begin
with Form1 do begin
SocketConnection1.ServerName :='';
//sleep(2000);
entries[1].dwSize := SizeOf(TRasConn);
bufsize := SizeOf(TRasConn) * 100;
FillChar(stat, Sizeof(TRasConnStatus), 0);
stat.dwSize := Sizeof(TRasConnStatus);
hRas := RasEnumConnections(@entries[1], bufsize, numEntries);
RasGetConnectStatus(entries[1].hrasconn, stat);
if RasHangUp(entries[1].hrasconn) = 0 then
begin
Form1.StatusBar1.SimpleText := '拨号已断开';
Sleep(1000); // wait 1 second
end
else
Form1.StatusBar1.SimpleText := '拨号挂断失败!';
//ShowMessage('拨号挂断失败!');
end;
end;