胡
胡一刀007
Unregistered / Unconfirmed
GUEST, unregistred user!
紧急求救各位大虾,我用D5进行winsocket的部件编程时,遇一问题:
procedure TchatForm.Memo1KeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
var
ActiveCount:integer;
begin
if Key = VK_Return then
begin
if IsServer then
begin
for ActiveCount:=0 to ServerSocket.Socket.ActiveConnections-1do
ShowMessage(inttoStr(ServerSocket.Socket.Connections[ActiveCount].SendText(Memo1.Lines[Memo1.Lines.Count - 1])));
SocketStatusBar.Panels[0].Text:='向服务器'+ ServerSocket.Socket.RemoteAddress+'发送信息...';
end
else
begin
ClientSocket.Socket.SendText(Memo1.Lines[Memo1.Lines.Count - 1]);
SocketStatusBar.Panels[0].Text:='向客户端'+ ClientSocket.Socket.RemoteAddress+'发送信息...';
end;
end;
end;
其中运行时,发现ActiveConnections为1,正确!因有一客户端在连接,服务器端发出的信息客户端接收到了,可服务器端还是出现了以下提示:
Windows socket error:由于套接字没有连接并且(当使用一个sendto调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。(10057),on API 'getpeename'。
如果没连接不成功,可ActiveConnections为1啊,且客户端也收到数据了,只是有延时啊,那Socket就应该是存在的啊?可为何还报错?帮帮我吧!先谢谢了!
procedure TchatForm.Memo1KeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
var
ActiveCount:integer;
begin
if Key = VK_Return then
begin
if IsServer then
begin
for ActiveCount:=0 to ServerSocket.Socket.ActiveConnections-1do
ShowMessage(inttoStr(ServerSocket.Socket.Connections[ActiveCount].SendText(Memo1.Lines[Memo1.Lines.Count - 1])));
SocketStatusBar.Panels[0].Text:='向服务器'+ ServerSocket.Socket.RemoteAddress+'发送信息...';
end
else
begin
ClientSocket.Socket.SendText(Memo1.Lines[Memo1.Lines.Count - 1]);
SocketStatusBar.Panels[0].Text:='向客户端'+ ClientSocket.Socket.RemoteAddress+'发送信息...';
end;
end;
end;
其中运行时,发现ActiveConnections为1,正确!因有一客户端在连接,服务器端发出的信息客户端接收到了,可服务器端还是出现了以下提示:
Windows socket error:由于套接字没有连接并且(当使用一个sendto调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。(10057),on API 'getpeename'。
如果没连接不成功,可ActiveConnections为1啊,且客户端也收到数据了,只是有延时啊,那Socket就应该是存在的啊?可为何还报错?帮帮我吧!先谢谢了!