저는 네트웍 체팅 프로르램을 짤려고 하는 초보 델피언 입니다.
채팅 클라이언트가 실행시 자기 컴퓨터의 IP Address를 읽어서
TClientSocket의 Address에 그 값을 넣고, TClientSocket를 Open
하여 서버에 접속하려고 합니다.
그래서 IP Address를 구하는 소스를 다운받아 실행 해보니까
IP Address는 정확히 구해지는데 TClientSocket를 Open하니까
에러가 발생합니다.
에러 : reised excption class ESocket Error message
'windows Socket error : (10049) on API 'connect'
IP Address 구하는 함수
function IPGet : String;
var
WSAData : TWSADAta;
HostName, Address : String;
HostEnt : PHostEnt;
begin
WSAStartup(2,WSAData);
SetLength(HostName,255);
Gethostname(PCha(HostName),255);
SetLength(HostName,StrLen(PChar(Hostname)));
HostEnt := Gethostbyname(PChar(HostName));
with HostEnt^ do
Address := Format('%d,%d,%d,%d',[Byte(h_addr^[0])
,[Byte(h_addr^[1])
,[Byte(h_addr^[2])
,[Byte(h_addr^[3])]);
WSACleanup;
Result := Address;
end;
실행 부분
begin
clientsocket.address := IPGet;
clientsocket.open
end;
위에서 clientsocket.open 이때 위의 에러 발생
서버 접속 불가 에러와는 다른 에러인것 같습니다.
어떻게 사용하면 에러가 발생하지 않겠습니까.
그리고 위의 함수에서보면 ^기호가 있는데 이것이 무엇을 뜻하는 것입니까
하나만 더 질문 하겠습니다.
채팅 서버와 클라이언트가 같은 컴퓨터에서 실행되는 것은 자료도 좀 있고
한데 한 컴퓨터에 채팅 서버를 띄우고, 다른 컴퓨터에서 클라이언트를 띄워
서버가 있는 컴퓨터고 접속하여 채팅을 하는 것은 자료를 찾을 수가 없습니다.
고수님들 께서 한수 가르쳐 주십시요,
예제 소스가 있으면 정말 감사하겠습니다.
통신 불능상태가 되어버리는데 이런 에러가 생기는 경우는 어떤때인지
알고 싶습니다. 아시는 분은 좀 갈켜 주시기 바랍니다.