Home > other >  The Socket communication failed to connect
The Socket communication failed to connect

Time:10-04

This machine is Windows 10 operating system, no firewall,
Destination address: 127.0.0.1, error code: 10049, if the destination address for the machine address, error code: 10051
In a Windows xp operating system running on your computer, can connect to the server normally,
Server is running on the same machine of guangzhou zhiyuan TCP& UDP test tools V1.038
The source code is as follows:

//===========================================
//UDPClient. H
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

# # ifndef UDPClientH
# define UDPClientH
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# include & lt; System. Classes. Hpp>
# include & lt; The Vcl. Controls. Hpp>
# include & lt; The Vcl. StdCtrls. Hpp>
# include & lt; The Vcl. Forms. Hpp>

# include & lt; stdio.h>
# define WM_SOCK WM_USER + 100
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
The class TLANForm: public TForm
{
__published://IDE - managed Components
TEdit * Port;
Label1 TLabel *;
TLabel * Label2;
TComboBox * Prot.
For the TButton *;
TLabel * Label3;
TEdit * Addr.
TxtEdit TEdit *;
Void __fastcall FormCreate (TObject * Sender);
Void __fastcall Button1Click (TObject * Sender);
Void __fastcall FormDestroy (TObject * Sender);
Private://User declarations
Void __fastcall OnRecv (TMessage & amp; Message);
Public://User declarations
__fastcall TLANForm (TComponent * Owner);

BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER (WM_SOCK TMessage, OnRecv);
END_MESSAGE_MAP (TForm);
};
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Extern PACKAGE TLANForm * LANForm;
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# endif

//===========================================
//UDPClient. CPP
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

# include & lt; The VCL. H>
# pragma hdrstop

# include "UDPClient. H"

# include "WinSock2. H"
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# pragma package (smart_init)
# pragma resource "*. DFM
"TLANForm * LANForm;

Enum PROTO {TCP=0, UDP=1};
PROTO m_Protocol;
The SOCKET m_Socket;
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
__fastcall TLANForm: : TLANForm (TComponent * Owner)
: TForm (the Owner)
{
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void __fastcall TLANForm: : FormCreate (TObject * Sender)
{
: : SendMessage (Prot - & gt; Handle, CB_SETCURSEL, 0, 0);//set the default selected item in a combo box
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void __fastcall TLANForm: : OnRecv (TMessage & amp; Message)
{
Struct sockaddr_in from;
Char buf [4096].
Int nLen;
Int nLength;

NLength=sizeof (struct sockaddr_in);

The switch (WSAGETSELECTEVENT (Message. LParam))
{
Case FD_READ:
The switch (m_Protocol)
{
In case the TCP:
NLen=recv (m_Socket, buf, 4096, 0);
If (nLen> 0)
{
Buf [nLen]='/0;
TxtEdit - & gt; Text="Received Length:" + String (nLen) + "/n/r" + StrPas (buf);
}
break;
In case the UDP:
NLen=recvfrom (m_Socket, buf, 4096, 0, (struct sockaddr *) & amp; The from, & amp; NLength);
If (nLen> 0)
{
Buf [nLen]='/0;
TxtEdit - & gt; Text="Received Length:" + String (nLen) + "/n/r" + StrPas (buf);
}
break;
}
break;

Case FD_CLOSE:
Closesocket (m_Socket);
break;
}
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void __fastcall TLANForm: : Button1Click (TObject * Sender)
{
Buf char szTmp [256], [4096].
Char ComputerName [255].
Int nSize=0;
Unsigned long nAddr;
UINT m_Port;
AnsiString addr.
String strTmp;
AnsiString AsTmp;
WSAData WSAData;
WORD version.
Unsigned long nClient;
Struct hostent * he;
Struct sockaddr_in client;
Struct sockaddr_in To;
Fd_set FDSET;
Int nLen;

Addr=addr - & gt; The Text. The Trim ();
If (addr. IsEmpty ())
{
: : MessageBox (0, L "both Please enter the server IP!" , L "Error", MB_OK + MB_ICONERROR);
return;
}

NAddr=inet_addr (addr. C_str ());//dotted decimal IP into a long integer, if not rule return INADDR_NONE
If (nAddr==INADDR_NONE)
{
: : MessageBox (0, L "Bad Internet IP!" , L "Error", MB_OK + MB_ICONERROR);
return;
}

Try
{
M_Port=Port - & gt; Text, ToInt ();
}
The catch (Exception & amp; E)
{
: : MessageBox (0, e.M essage. C_str (), L "Error", MB_OK + MB_ICONERROR);
return;
}

The switch (Prot - & gt; ItemIndex)
{
Case 0:
M_Protocol=TCP;
break;
Case 1:
M_Protocol=UDP;
break;
}

If (TxtEdit - & gt; Text. IsEmpty ())
{
: : MessageBox (0, L "both Please enter the text you want to send!" , L "Error", MB_OK + MB_ICONERROR);
return;
}

//Initialize Winsocket
: : ZeroMemory (& amp; nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
  • Related