This commit is contained in:
2024-08-07 09:16:27 -04:00
parent fdfadd5c7e
commit 5f971cf684
5200 changed files with 731717 additions and 0 deletions

92
proto/source/chatc.cpp Normal file
View File

@@ -0,0 +1,92 @@
#include <socket/socket.hpp>
#include <socket/wsadata.hpp>
#include <socket/inaddr.hpp>
#include <socket/hostent.hpp>
#include <socket/servent.hpp>
//#include <winsock2.h>
#define SIO_GET_INTERFACE_LIST _IOR('t', 127, u_long) // <TBD>
typedef struct _INTERFACE_INFO
{
u_long iiFlags; /* Interface flags */
struct sockaddr iiAddress; /* Interface address */
struct sockaddr iiBroadcastAddress; /* Broadcast address */
struct sockaddr iiNetmask; /* Network mask */
} INTERFACE_INFO, FAR * LPINTERFACE_INFO;
void message(const String &message);
void main(void)
{
WSASystem wsaSystem;
String hostName("li.net");
HostEnt hostEntry;
ServEnt serverEntry;
InternetAddress internetAddress(hostName);
INETSocketAddress inetSocketAddress;
Socket ftpControl;
message(String("trying ")+hostName+String("..."));
if(!internetAddress.isZero()){if(!hostEntry.hostByAddress(internetAddress)){message(String("no DNS entry for ")+hostName);return;}}
else if(!hostEntry.hostByName(hostName)){message(String("no DNS entry for ")+hostName);return;}
message(String("connect...")+String("'")+hostEntry.hostName()+String("' (")+(String)(hostEntry.addresses())[0]+String(")"));
inetSocketAddress.internetAddress((hostEntry.addresses())[0]);
if(!serverEntry.serviceByName("ftp","tcp")){message("cannot determine port number for ftp daemon.");return;}
if(!ftpControl.openSocket()){message("unable to create socket.");return;}
inetSocketAddress.family(PF_INET);
inetSocketAddress.port(serverEntry.port());
if(!ftpControl.connect(inetSocketAddress)){message("unable to connect to ftp daemon");return;}
// if(!receive(mAckConnectionResponseStrings))return FALSE;
ftpControl.getSocketName(inetSocketAddress);
message(String("my IP address is..")+(String)inetSocketAddress.internetAddress());
INETSocketAddress inetAddress;
int length(sizeof(sockaddr_in));
::getpeername(ftpControl,(sockaddr*)((sockaddr_in*)&inetAddress),&length);
message((String)inetAddress.internetAddress());
// return mFTPControl.isConnected();
// char bigBuff[256];
// ::memset(bigBuff,0,sizeof(bigBuff));
INTERFACE_INFO interfaceInfo;
::memset(&interfaceInfo,0,sizeof(interfaceInfo));
ioctlsocket(ftpControl,SIO_GET_INTERFACE_LIST,(ULONG*)&interfaceInfo);
message("ioctl succeeded");
INTERFACE_INFO *pI=&interfaceInfo;
return;
}
void message(const String &message)
{
::OutputDebugString(message+String("\n"));
}
#if 0
WORD FTPClient::open(String hostName)
{
HostEnt hostEntry;
ServEnt serverEntry;
message(String("trying ")+hostName+String("..."));
if(!mWSASystem.isInitialized()){message("WINSOCK initialization failure.");return FALSE;}
InternetAddress internetAddress(hostName);
if(!internetAddress.isZero()){if(!hostEntry.hostByAddress(internetAddress)){message(String("no DNS entry for ")+hostName);return FALSE;}}
else if(!hostEntry.hostByName(hostName)){message(String("no DNS entry for ")+hostName);return FALSE;}
message(String("connect...")+String("'")+hostEntry.hostName()+String("' (")+(String)(hostEntry.addresses())[0]+String(")"));
INETSocketAddress::internetAddress((hostEntry.addresses())[0]);
if(!serverEntry.serviceByName("ftp","tcp")){message("cannot determine port number for ftp daemon.");return FALSE;}
if(!mFTPControl.openSocket()){message("unable to create socket.");return FALSE;}
INETSocketAddress::family(PF_INET);
INETSocketAddress::port(serverEntry.port());
if(!mFTPControl.connect((INETSocketAddress&)*this)){message("unable to connect to ftp daemon");return FALSE;}
if(!receive(mAckConnectionResponseStrings))return FALSE;
mFTPControl.getSocketName((INETSocketAddress&)*this);
return mFTPControl.isConnected();
}
#endif