procedure tcpclient;
var wsadada:wsadata ;
tclient:TSocket ;
i:Integer;
socketversion:Word ;
serveaddr:sockaddr_in ;
buffer:array [0..255] of Char;
recichar:array [0..255] of Char;
ip:string;
begin
WSAStartup(MakeWord(2,2),wsadada );
tclient :=socket(AF_INET ,SOCK_STREAM ,IPPROTO_ip );
if tclient = INVALID_socket then
ShowMessage('error');
serveaddr.sin_family :=aF_INET ;
serveaddr .sin_port :=htonl(7002);
serveaddr .sin_addr.S_addr :=inet_addr('127.0.0.1');
[color=#FF0000]if connect(tclient,serveaddr,SizeOf(serveaddr) ) =SOCKET_ERROR then
begin
MessageBox(Application.Handle,'error','error',MB_OK or MB_ICONERROR ) ;
closesocket(tclient );
end;
为什么会执行if语句啊,,按理来说我没有写错啊
var wsadada:wsadata ;
tclient:TSocket ;
i:Integer;
socketversion:Word ;
serveaddr:sockaddr_in ;
buffer:array [0..255] of Char;
recichar:array [0..255] of Char;
ip:string;
begin
WSAStartup(MakeWord(2,2),wsadada );
tclient :=socket(AF_INET ,SOCK_STREAM ,IPPROTO_ip );
if tclient = INVALID_socket then
ShowMessage('error');
serveaddr.sin_family :=aF_INET ;
serveaddr .sin_port :=htonl(7002);
serveaddr .sin_addr.S_addr :=inet_addr('127.0.0.1');
[color=#FF0000]if connect(tclient,serveaddr,SizeOf(serveaddr) ) =SOCKET_ERROR then
begin
MessageBox(Application.Handle,'error','error',MB_OK or MB_ICONERROR ) ;
closesocket(tclient );
end;
为什么会执行if语句啊,,按理来说我没有写错啊
connect(tclient,@serveaddr,SizeOf(serveaddr) ) 另,是不是你的服务器没开启?
S := SysErrorMessage(WSAGetLastError());
MessageBox(Application.Handle,PChar(S),'error',MB_OK or MB_ICONERROR );
end;
把错误信息打出来看看.
(蓝色光芒)的方法,我得到了'由于计算机积极拒绝,无法连接'的错误提示,请问该怎么解决这个问题,我是win7的电脑,应该到哪里去打开本机的服务器。
if connect(FSocket, @saddrin, SizeOf(saddrin))=Socket_Error then
........
(蓝色光芒)两位的帮助,谢谢啦。